Anonymous
Alex
это про го
я не про go спрашивал.
Anonymous
в расте конечно же нет
Sergey
короч включить vibrancy оказалось оч просто
Sergey
でゲソ
уже в сторе?
Anonymous
Там ишью есть.
Anonymous
@sergeysova
Anonymous
А, запинено же.
Sergey
Там ишью есть.
так мой же)
Anonymous
Ну, я присутствующим это.
Michael
в расте есть goto?
есть break из нескольких циклов
Michael
а больше goto незачем
Alex
А, запинено же.
Вопрос ток в том что кто запинил и зачем?
Anonymous
доброй ночи, вот сижу и думаю, то ли я тупой, то ли ночь уже на дворе... в общем, есть следующая задача: curl -F file=@path/to/file.txt "http://localhost:5001/api/v0/add?recursive=false" и вот такое надо сделать на Rust, сейчас есть: fn query_post_upload(&self) -> Vec<u8> { let mut data = Vec::new(); let mut buffer = Vec::new(); let mut handle = Easy::new(); let link = &self.complete_get_link(); let path = Path::new(&self.path); File::open(path).unwrap().read_to_end(&mut data); let mut slice = &data[..]; handle.url(link).unwrap(); handle.post(true).unwrap(); handle.post_fields_copy(slice); { let mut transfer = handle.transfer(); transfer.read_function(|buf| { Ok(slice.read(buf).unwrap_or(0)) }).unwrap(); transfer.write_function(|new_data| { buffer.extend_from_slice(new_data); Ok(new_data.len()) }).unwrap(); transfer.perform().unwrap(); } buffer } Однако, это совсем не то, что нужно, насколько я понял... А вот ошибка получается вот такая: "File argument \'path\' is required"
でゲソ
не догоняю что должно произойти при выполнении курл
でゲソ
он должен считать данные в файл?
分解物質
к реальности имеющий мало отношения
պլհկ
if err!=nil: return err
andrei
if let Err(x) = err { return err }
պլհկ
так никто не пишет
andrei
🤔
Anonymous
он должен считать данные в файл?
он должен сделать upload файла
分解物質
"safe не нужен, нормальный программист не ошибается"
это называеться "поехавший пишуший на C|С++ с каких-нибудь форумов"
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
А какой тип будет иметь 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
а какая есть альтернатива?
В расте хз. На на флоу было бы так: 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 у тебя может быть только строкой.
Anonymous
причем тут окамл 🤔
Флоу заимствует систему типов оттуда.