Size: a a a

2020 March 25

p

polunin.ai in rust_offtopic
string text = read()
if text.is_int() {
 int res = text.to_int()
}
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
То есть
x: i32 = read()
if x > 10 {
 bar(x)
}
Здесь x внутри тела ИФА будет иметь тип x: i32{x>10}
тайпскрипт к слову это умеет
источник

S

Soul in rust_offtopic
Ну то есть я должен приводить ввод к числу и обрабатывать ситуацию, когда он не соответствует числу, то есть по сути делать то же самое, что и без доказательств, но только вне тела функции, правильно?
источник

p

polunin.ai in rust_offtopic
Или так
string text = read()
Option<int> res = text.to_int()
источник

G

Gymmasssorla in rust_offtopic
Soul
Ну то есть я должен приводить ввод к числу и обрабатывать ситуацию, когда он не соответствует числу, то есть по сути делать то же самое, что и без доказательств, но только вне тела функции, правильно?
Где хочешь, там обрабатываешь ситуацию
источник

S

Soul in rust_offtopic
Gymmasssorla
Где хочешь, там обрабатываешь ситуацию
не, там же функция принимает уже обработанное
источник

AZ

Alex Zhukovsky in rust_offtopic
источник

p

polunin.ai in rust_offtopic
Soul
Ну то есть я должен приводить ввод к числу и обрабатывать ситуацию, когда он не соответствует числу, то есть по сути делать то же самое, что и без доказательств, но только вне тела функции, правильно?
Ты можешь доказывать где угодно, главное чтобы доказательство было в месте вызова функции.

Да, ты делаешь то же самое. Но ты никогда не забудешь проверить это, потому что верификатор ругнется, если ты это не сделаешь.
источник

G

Gymmasssorla in rust_offtopic
Soul
не, там же функция принимает уже обработанное
Значит суёшь ей обработанное
источник

G

Gymmasssorla in rust_offtopic
Круто
источник

p

polunin.ai in rust_offtopic
Жаль он не умеет делать x > 10
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
Жаль он не умеет делать x > 10
думаю можно попробовать извернуться, но в целом да, не умеет. Просто как иллюстрация идеи
источник

AZ

Alex Zhukovsky in rust_offtopic
Gymmasssorla
Круто
к слову про то что даже в мейнстрим языках есть крутые штуки про которые никто не знает потому что среднестатистический фронт даже не подумает так написать)
источник

S

Soul in rust_offtopic
polunin.ai
Ты можешь доказывать где угодно, главное чтобы доказательство было в месте вызова функции.

Да, ты делаешь то же самое. Но ты никогда не забудешь проверить это, потому что верификатор ругнется, если ты это не сделаешь.
то есть если я в аргумент функции принимаю текст, каждый третий символ которого '9', и проверяю выполнение этого условия для пользовательского ввода неправильно, то об этом меня может предупредить верификатор?
источник

AZ

Alex Zhukovsky in rust_offtopic
Soul
то есть если я в аргумент функции принимаю текст, каждый третий символ которого '9', и проверяю выполнение этого условия для пользовательского ввода неправильно, то об этом меня может предупредить верификатор?
это значит что ты должен распарсить тип "текст" в тип "текст, каждый третий символ которого - 9"
источник

AZ

Alex Zhukovsky in rust_offtopic
суть та же что ты пишешь калькулятор
источник

AZ

Alex Zhukovsky in rust_offtopic
как ты этол джелаешь?
источник

AZ

Alex Zhukovsky in rust_offtopic
a = parse(inputA)
b = parse(inputB)
inputC = toString(a + b)
источник

S

Soul in rust_offtopic
Alex Zhukovsky
это значит что ты должен распарсить тип "текст" в тип "текст, каждый третий символ которого - 9"
а если я распарсил неправильно? Или неправильно распарсить нереально?
источник

AZ

Alex Zhukovsky in rust_offtopic
тут тот же принцип
источник