Size: a a a

2020 April 03

AZ

Alex Zhukovsky in rust_offtopic
Soul
если ифчики завёрнуты в типы, это не делает их сильно лучше
эмм, это ифчики на этапе компиляции
источник

S

Soul in rust_offtopic
нет, это не ифчики на этапе компиляции.
источник

AZ

Alex Zhukovsky in rust_offtopic
а что это?
источник

S

Soul in rust_offtopic
ну... Это конструктор типа, проверяющий все эти условия.
источник

AZ

Alex Zhukovsky in rust_offtopic
Soul
ну... Это конструктор типа, проверяющий все эти условия.
источник

AZ

Alex Zhukovsky in rust_offtopic
вот пример на скале
источник

AZ

Alex Zhukovsky in rust_offtopic
ифчик "число не выходит за границы массива" в компайл тайм проверяется
источник

AZ

Alex Zhukovsky in rust_offtopic
Soul
ну... Это конструктор типа, проверяющий все эти условия.
это просто парсинг числа в этот тип
источник

AZ

Alex Zhukovsky in rust_offtopic
ничем не отличается от int x = atoi("123")
источник

S

Soul in rust_offtopic
позволь я объясню
источник

S

Soul in rust_offtopic
твой пример на скале описывает заранее известные программе данные в виде типа. atoi способен работать с данными, которые НЕ известны во время компиляции
источник

S

Soul in rust_offtopic
но все ифчики в нем естественно рантаймовые
источник

DS

Doge Shibu in rust_offtopic
Soul
твой пример на скале описывает заранее известные программе данные в виде типа. atoi способен работать с данными, которые НЕ известны во время компиляции
Нет, см. applyDynamic, он там специально для таких вызовов
источник

DS

Doge Shibu in rust_offtopic
Для тех, где i не известен в компайл тайме
источник

DS

Doge Shibu in rust_offtopic
И смотри как он используется в get методе, где через lessOrEqualTo и lessTo получаются нужные доказательства
источник

S

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

p

polunin.ai in rust_offtopic
Soul
твой пример на скале описывает заранее известные программе данные в виде типа. atoi способен работать с данными, которые НЕ известны во время компиляции
Неизвестные программе данные это очень маленькое количество входных данных. И не всегда важно что это за данные. Например в мессенджер ты отправляешь сообщение. Тут никаких проверок нет твоего сообщения. Но объем работы просто огромный - перегнать сообщение по сети на сервер, и потом показать тебе.
источник

AZ

Alex Zhukovsky in rust_offtopic
Soul
ну там с доказательствами, я в этом не разбираюсь, но всё сводится я так полагаю к тому, что всё равно всё либо известно во время компиляции, либо проверено в рантайме рантаймовыми ифами
вопрос в том, хранишь ли ты информацию о проверке рантаймовыми ифами
источник

AZ

Alex Zhukovsky in rust_offtopic
то есть "тут пришло число. А кто-то где-то проверил, что оно положительное?"
источник

DS

Doge Shibu in rust_offtopic
Soul
ну там с доказательствами, я в этом не разбираюсь, но всё сводится я так полагаю к тому, что всё равно всё либо известно во время компиляции, либо проверено в рантайме рантаймовыми ифами
Там хитрее. Там код, который не скомпилится, если ты его вызовешь БЕЗ рантаймовых ифов для неизвестного числа.
источник