Иногда удивляюсь почему простые вещи типа
return if p.nil? в начале метода
не работают так, как ожидаешь
Видимо компилятор еще не настолько умный, чтобы однозначно решить, будет там nil или нет... Язык молодой, можно issue в гитхаб закинуть с этим вопросом, там умные дяди дадут ответ почему так и можно ли это победить когда-нить
А как константа может быть nil?, она ж определена
https://play.crystal-lang.org/#/r/g4m5
Потому что ООП, иногда можно такую дичь закодить class Value property payload : String? = nil def initialize(@payload) @value = value end def present? true end def to_s @payload end end v = Value.new(nil) v.split(".") if v.present?
Мощно :) Интересный способ выстрелить себе в ногу
Error: 'nil?' is a pseudo-method and can't be redefined )
Обсуждают сегодня