Size: a a a

2020 August 01

AZ

Alex Zhukovsky in rust_offtopic
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);
}

Кто мне помешает так сделать?
источник

Т8

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

Т8

Т-34 85 in rust_offtopic
Hirrolot
в стандарте нет, но есть в расширениях
есть
источник

H

Hirrolot in rust_offtopic
Т-34 85
есть
где?
источник

AZ

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

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
вот скажи чем bool TryParse(string s, out value) лучше чем (bool, int) TryParse(string s)?
тем, что этот bool компилятор заставит хоть как-то потрогать. А эксепшин не обязывает тебя его ловить
источник

p

polunin.ai in rust_offtopic
Зачем вообще нулл нужен? Похоже на костыль
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
тем, что этот bool компилятор заставит хоть как-то потрогать. А эксепшин не обязывает тебя его ловить
что он меня заставляет лол.
int.TryParse("blabla", out var x);
Console.WriteLine(x);
источник

Т8

Т-34 85 in rust_offtopic
Hirrolot
если мы о си
о крестах. В сях есть, наверное, можно __attribute__((warn_unused_result)) навесить
источник

ГС

Георгий Седометов... in rust_offtopic
polunin.ai
Зачем вообще нулл нужен? Похоже на костыль
источник

Ct

Casual tears in rust_offtopic
Alex Zhukovsky
вот скажи чем bool TryParse(string s, out value) лучше чем (bool, int) TryParse(string s)?
Можно память из value реюзать. В расте например именно по этой причине Read буфер принимает output параметром.
источник

Т8

Т-34 85 in rust_offtopic
Георгий Седометов
это всё человеческий фактор, его нужно минимизировать, потому что люди постоянно ошибаются
он и так минимизирован, для этого nodiscard и ввели
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
зачем костыли если можно сделать нормально, можешь объяснить?
зависит же. Или нельзя, или так проще
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
вот скажи чем bool TryParse(string s, out value) лучше чем (bool, int) TryParse(string s)?
Лучше int?
источник

Т8

Т-34 85 in rust_offtopic
Hirrolot
у меня два разных типа — значение успеха и значение ошибки
а что такое "значение ошибки"? А валидным может быть всё множество типа?
источник

p

polunin.ai in rust_offtopic
Блин а вот не было бы нулла то разработчики были бы ВЫНУЖДЕНЫ добавлять АДТ чтобы делать Option.
источник

Т8

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

Т8

Т-34 85 in rust_offtopic
Hirrolot
два out-параметра передавать?
?
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
зачем хардкодить какие-то nodiscard в компиляторе?
ну, раньше его не было, из-за чего многие просто забывали или забивали чекать на наличие  ошибки
источник

p

polunin.ai in rust_offtopic
@Psilon кстати я помню ты говорил что ? это частный случай >>=, но ведь ? может гораздо больше чем ?
источник