Size: a a a

2020 August 01

p

polunin.ai in rust_offtopic
Например из середины выражения выйти из функции через >>= нельзя
источник

AZ

Alex Zhukovsky in rust_offtopic
Casual tears
Можно память из value реюзать. В расте например именно по этой причине Read буфер принимает output параметром.
ну вот реюз буфера это единственная причина почему так нужно делать.
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
Лучше int?
?
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
вот и я об этом. Какой программист сделает обработку ошибок, такая и будет. Хоть Раст, хоть Кресты
нет
источник

p

polunin.ai in rust_offtopic
int? TryParse(string s)
источник

AZ

Alex Zhukovsky in rust_offtopic
я говорю о том что в компиляторе вообще нет знания об ошибках
источник

AZ

Alex Zhukovsky in rust_offtopic
при этом ошибки в языке конечно есть и игнорировать их нельзя
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
int? TryParse(string s)
ну это по сути схлопывание (bool, int) ты же знаешь
источник

AZ

Alex Zhukovsky in rust_offtopic
точнее оно лучше тем что бул надо проверить
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
покажи пример со своим nodiscard
ну, простенькое
https://godbolt.org/z/qd749x
источник

Т8

Т-34 85 in rust_offtopic
Георгий Седометов
с риском получить NPE? Офигенная история
тебе компилятор говорил, что надо чекнуть на ошибку? Говорил! Если ты всё равно раскрыл Result без проверки, то ССЗБ, если схватишь панику
источник

ГС

Георгий Седометов... in rust_offtopic
Т-34 85
тебе компилятор говорил, что надо чекнуть на ошибку? Говорил! Если ты всё равно раскрыл Result без проверки, то ССЗБ, если схватишь панику
да, в расте я могу сделать unwrap и получить панику, но это, хотя бы, будет видно при просмотре кода в отличие от неявного null повсюду
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
struct [[nodiscard]] error_info { };
error_info enable_missile_safety_mode(someObject: *Object);
void launch_missiles(someObject: *Object);
void test_missiles() {
  Object* obj;
  auto error = enable_missile_safety_mode(obj); // compiler may warn on discarding a nodiscard value
  print(error)
  launch_missiles(obj);
}

Кто мне помешает так сделать?
если ты осознанно заюзал возврат для успокоения компилятора, но не проверил, то ССЗБ. От этого и Rust не защитит
источник

SP

Stanislav Popov in rust_offtopic
>компилятор говорил

https://www.youtube.com/watch?v=tndAVl6iGnk
источник

ГС

Георгий Седометов... in rust_offtopic
Т-34 85
тебе компилятор говорил, что надо чекнуть на ошибку? Говорил! Если ты всё равно раскрыл Result без проверки, то ССЗБ, если схватишь панику
и да, я всё ещё не могу использовать Option<i32> как i32 без явной обработки None, а null в других языках могу. Чувствуешь разницу?
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
и? Чем отличается?
ну, ты не проигнорировал, а обработал. Зачем ты так обработал - наверное, что-то имел в виду, не само же оно появилось
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
что он меня заставляет лол.
int.TryParse("blabla", out var x);
Console.WriteLine(x);
и что, нет варна, что игнорируемое значение возврата?
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
при этом ошибки в языке конечно есть и игнорировать их нельзя
вот для этого и сделали nodiscard, который напоминает, что надо бы чекнуть на наличие ошибки. Я только хз, почему его по делфолту не вешает компилятор, а надо руками. Наверное, чтобы имеющийся код не сломался
источник

Т8

Т-34 85 in rust_offtopic
Георгий Седометов
да, в расте я могу сделать unwrap и получить панику, но это, хотя бы, будет видно при просмотре кода в отличие от неявного null повсюду
ты не забывай, что ты должен где-то пощупать возвращаемое значение, иначе просто так не достать этот null
источник

Т8

Т-34 85 in rust_offtopic
Георгий Седометов
и да, я всё ещё не могу использовать Option<i32> как i32 без явной обработки None, а null в других языках могу. Чувствуешь разницу?
источник