История изменений
Исправление gaylord, (текущая версия) :
а в чем разница? и там и там возвращается или мусор под названием - ничего, или некая «ошибка» например число или строка.
Неа.
enum Option<T> {
Some(T),
None
}
То есть функция возвращает Option. Это вполне себе определенный тип.
почему оно «перестает работать» не понял. optional, это примитивная форма варантной записи. там поле значения и флажок, что оно валидно. и усьо. ты сам говорил, что вариантная запись - это то что надо.
Потому что если функция возвращает что-то осмысленное (число, строку, файловый дескриптор), то Option бесполезен для возврата ошибки, ибо второе поле у не позволяет передать собственно ошибку. То есть либо получишь Some(T), либо None, который скажет «я не шмогла». Это плохой API для ошибок.
Исходная версия gaylord, :
а в чем разница? и там и там возвращается или мусор под названием - ничего, или некая «ошибка» например число или строка.
Неа.
enum Option<T> {
Some(T),
None
}
То есть у функция возвращает Option. Это вполне себе определенный тип.
почему оно «перестает работать» не понял. optional, это примитивная форма варантной записи. там поле значения и флажок, что оно валидно. и усьо. ты сам говорил, что вариантная запись - это то что надо.
Потому что если функция возвращает что-то осмысленное (число, строку, файловый дескриптор), то Option бесполезен для возврата ошибки, ибо второе поле у не позволяет передать собственно ошибку. То есть либо получишь Some(T), либо None, который скажет «я не шмогла». Это плохой API для ошибок.