Anonymous
Anonymous
в расте конечно же нет
Sergey
короч включить vibrancy оказалось оч просто
Sergey
でゲソ
уже в сторе?
Anonymous
Там ишью есть.
Anonymous
@sergeysova
Anonymous
А, запинено же.
Sergey
Anonymous
Ну, я присутствующим это.
Michael
а больше goto незачем
でゲソ
не догоняю что должно произойти при выполнении курл
でゲソ
он должен считать данные в файл?
分解物質
分解物質
к реальности имеющий мало отношения
պլհկ
if err!=nil:
return err
andrei
if let Err(x) = err {
return err
}
պլհկ
так никто не пишет
andrei
🤔
Anonymous
Мерль
Alex
Filipp
Alex
что за err {}?
Filipp
Это if let
Filipp
Немного неочевидная конструкция
Filipp
Если err можно деструктурировать по правилу слева от =, то выполняется блок кода в фигурных скобках
Berkus
let mut f1 = File::open("log.txt")?;
этот вопросительный знак в конце эквивалентен unwrap()?
Oleg
Эквивалентен макросу try!
Berkus
агаа, спасибо!
andrei
Loo
cам сделал?
andrei
Не
Loo
а откуда тогда?
andrei
https://www.reddit.com/r/rustjerk/comments/6t3hdp/ive_worked_out_a_roadmap_for_go_20/
պլհկ
Лайк
Anonymous
а почему мы до сих пор не смержились интересами с ruRust?
Loo
объясни
պլհկ
Это те петухи которые просили ссылку на них убрать?
Anonymous
ну просто считается что это официальное комьюнити, а мы кокието анархисты на их фоне
Anonymous
я подумал почему бы нам не узаконить наши отношения, чтобы не было раскола в русском расто комьюнити
պլհկ
У них же нет телеграма?
Anonymous
нет
Мерль
պլհկ
Не понял что ты предлагаешь
Мерль
Лол
Anonymous
например можно оставить ссылку на их сайт в описании
Anonymous
сделать первый шаг так сказать
Anonymous
Anonymous
они просто книги перевели
Anonymous
А какой тип будет иметь y?
let x = 5;
let y = if x == 5 { 10 } else { "oops" };
Anonymous
В результате вывода.
Anonymous
Или будет ошибка несовместимости типов i32 и строки?
Anonymous
Для Flow подобная конструкция вывела бы union тип
number | string, например.
պլհկ
Anonymous
Пасиба.
պլհկ
Палю: play.rust-lang.org
Anonymous
Это
И, т.е. enum автоматом нигде не выводится?
Anonymous
պլհկ
Anonymous
Блин. Ну, так-то, это прям неудобненько.
Anonymous
Anonymous
Anonymous
а какая есть альтернатива?
В расте хз. На на флоу было бы так:
const getWTF =
(num: number) =>
num > 3 ? num : 'wtf?';
Функция возвращает юнион-тип number | string. Работает он таким образом, что флоу заставляет тебя вручную проверить тип переменной в рантайме, если ты используешь её как строку или как число. Но, если ты используешь её способом, который подходит и для строки и для числа, то такую проверку форсить не будет.
Anonymous
>рантайме
Anonymous
nO
Anonymous
Ну, если у тебя юнион тип, то ты вывести один из вариантов можешь только в рантайме. Или не используй юнион, или проверяй тип. =)
Anonymous
Ну, так-то, и ничего страшного. Обычно таких проверок не так уж много.
Anonymous
не могу представить как такое обрабатывать
Anonymous
=)) Ну, я не знаю, как там в окамле, т.к. этот язык написан без учёта специфике жс. А на флоу типы выводятся в том числе с помощью условных конструкций.
Anonymous
причем тут окамл 🤔
Anonymous
там тоже самое что и в расте
Anonymous
declare function getStringOrNumber(): string | number;
const result = getStringOrNumber();
result.toUpperCase();
result.toFixed(1);
if (typeof result === 'string') result.toUpperCase();
if (typeof result === 'number') result.toFixed(1);
Вот за обращение к result без проверки типа флоу шлёпнет тебя п рукам, и скажет что-типа "ты не можешь обращаться к этой переменной как строке, т.к. она в данный момент может быть ещё и числом". Но после проверки флоу сам уточняет тип, и после if (typeof result === 'string') result у тебя может быть только строкой.