Size: a a a

2021 April 05

AZ

Alexander Zelenyak in Moscow Python
Если коротко.
источник

S

Sergey in Moscow Python
пруф давай? а?
источник

N

Nikolay in Moscow Python
поправь, если я неправильно тебя понял
источник

AZ

Alexander Zelenyak in Moscow Python
В примере с ?? гарантии соблюдаются.
источник

S

Sergey in Moscow Python
нууу всё, значит ты врёшь
источник

AZ

Alexander Zelenyak in Moscow Python
У тебя всегда на выходе либо значение из структуры, либо дефолт.
источник

AZ

Alexander Zelenyak in Moscow Python
При том, ты явно обрабатываешь отсутствующие значения.
источник

N

Nikolay in Moscow Python
давай так спрошу - какой механизм в свифте определяет наличие или отсутствие значения? У них своя реализация Optional, верно?
источник

AZ

Alexander Zelenyak in Moscow Python
Где-то внутрях, видимо, так.
Плюс не забывай, я только вчера чуток про него почитал и мог явный вариант пока не увидеть.
источник

AZ

Alexander Zelenyak in Moscow Python
Вернее там даже не Optional.
источник

AZ

Alexander Zelenyak in Moscow Python
Там проще — значение может быть nil. Не любое, как в питоне, а только то, которому явно разрешили таким быть.
источник

AZ

Alexander Zelenyak in Moscow Python
Фактически, это и есть Optional. Но чуток в упрощённом варианте.
источник

N

Nikolay in Moscow Python
я просто набрасывал про то, что обычно подобные реализации представляют собой иерархию типов, как в расте, скале, хаскеле и еще куче прочих рубей. А если в свифте не так - то они сделали костыль. Оно работает, да, но можно было бы сделать лучше. А то, что синтаксис красивенький - что ж, можно красивым плакатом и дыру в стене заклеить
источник

AZ

Alexander Zelenyak in Moscow Python
И ты должен явно этот nil обрабатывать, иначе ничего не скомпилится.
источник

N

Nikolay in Moscow Python
Optional - предельно простая херня, на самом деле. Там некуда упрощать, разве что низвести его до уровня error в Go
источник

AZ

Alexander Zelenyak in Moscow Python
Вот ты говоришь «можно сделать лучше». Я не могу с этим спорить — всегда можно сделать лучше. Но вот как? Вот как бы ты сделал лучше?
источник

AZ

Alexander Zelenyak in Moscow Python
В расте — хуже. Ну объективно надо писать больше сложно читаемого кода при тех же гарантиях.
источник

AZ

Alexander Zelenyak in Moscow Python
В питоне… ну ты понял.   🙂
источник

SZ

Shagit Ziganshin in Moscow Python
Объясняю доступнее
? в Swift = .and_then() в Rust
?? в Swift = unwrap_or_default(…) в Rust
источник

N

Nikolay in Moscow Python
я описал, как. Для меня в расте оно уже однозначно лучше, несмотря на более громоздкий синтаксис, просто потому что более корректно реализовано. А что там синтаксический сахарок - дело десятое вообще
источник