Filipp
Filipp
а зачем?
чтоб глаза не кровоточили
Anonymous
Anonymous
но ты выбрал раст
Filipp
ладно буду как девид бек &String использовать
adam
.map_or(Borrowed("default"), |x| Owned(x));
Anonymous
Пока ты пытался написать одну строчку красиво, где-то в Китае написали либу целиком
Anonymous
adam
Anonymous
Filipp
Filipp
слава б-гу
adam
Filipp
я хочу не написать а научиться писать
Anonymous
хм, интересно что rustc не может коерсить Option<&String> в Option<&str>
Filipp
вот я о том же. Может ишью сделать?
Filipp
о на SO все решили до нас как обычно
Filipp
https://stackoverflow.com/questions/31233938/converting-from-optionstring-to-optionstr
Anonymous
скорее всего оно так и должно работать как сейчас
adam
Типичная растопроблема, неудивительно
分解物質
Berkus
да уж, лучше as_ref
Berkus
прелесть какая
Berkus
двойной дереф
Berkus
там же написано почему
Berkus
*x делает из &String -> String
**x делает из &String -> str
&**x делает из &String -> &str
Alex
почему так сложна.
Berkus
там в двух строчках написано
Alex
напомнил мне про три команды сборки генты
Berkus
потому что стринг реализует трейт Deref<Output=str>
Berkus
Alex
Alex
Berkus
DEUS VULT
Alex
так так так, я снова забыл почему str всегда со ссылкой пишется. str это же указатель + размер, верно?
Filipp
str это сразу байты, а они ?Sized
А вот &str - это уже ссылка, она Sized
Filipp
размер наверное где-то в str тоже хранится
Alex
?Sized это значит что мы не можем компилтайм узнать размер типа?
Filipp
да
Filipp
если я ничего не напутал
Filipp
https://doc.rust-lang.org/std/primitive.str.html#representation
Filipp
здесь все написано
Alex
воще когда говорят что раст сложный - они правы. Не то что он сложнее C/C++, но для меня как человека привыкшего к динамическим языкам - в расте очень очень много тонкостей
Berkus
Alex
весьма. Но меня больше не трейты сами по себе смущают а самые базовые типы.
Alex
постоянно с ними какие то тонкости возникают
Berkus
ну как, в си страдали что нет строкового типа, в расте страдают что их 4 или 5 )
分解物質
Alex
я сказал что не в этом суть того сообщения
Alex
хотя да, C довольно прост.
Alex
работать с ним сложна.
Anonymous
не согласен что раст сложный
adam
Значит ты недостаточно его выучил
Anonymous
и заинтересован компетентностью людей которые говорят что он сложный
Co(n)stantine👨🔬
Лучше изучать Go)
adam
Думаю, что здесь не стоит упоминать тот известный баззворд
Co(n)stantine👨🔬
Хотя что его изучать
Anonymous
>go
Alex
Co(n)stantine👨🔬
Alex
Berkus
adam
Go местами запутанный, пока не разберёшься в воркараундах
Anonymous
Co(n)stantine👨🔬
Мерль
Ни дня без Go в чатике по русту >_>
Co(n)stantine👨🔬
Alex
не еретик я
ты распространяешь ересь в раст чатике
Co(n)stantine👨🔬
Ладно ладно, но Go не ересь
分解物質
Berkus
Nobody expects the Terra Inquisition!
Ilia
Терра?
Alex
Co(n)stantine👨🔬
С+Go=love остальное не нужно)
分解物質