ReyMagos
Тег-бомбастер
- 413
- 7
- 131
Я не понимаю в чём смысл этого кода:
Если можно было не париться и сделать так:
Логично, что в
И тут самый главный вопрос. Зачем придумывать безопасный оператор вызова если можно просто всегда возвращать либо значение либо
Kotlin:
var a: String? = null
val b = a?.length;
Kotlin:
var a: String? = null;
val b = a.length; //Без знака вопроса
Логично, что в
String null физически не может лежать, чего не скажешь о String?. b? по сути является безопасным вызовом, который либо выдаст b.length, либо null. Соответственно если попробовать вызвать метод без него, то будет ошибка при компиляции.И тут самый главный вопрос. Зачем придумывать безопасный оператор вызова если можно просто всегда возвращать либо значение либо
null? По сути код a.length вернёт тип Int, а a?.length вернёт Int?. Но не логичнее ли возвращать Int?, если a может быть нулевым и Int, если не может? Просто обычный метод, у которого тип результата будет зависеть от типа у которого его вызывают? Или я что-то не понимаю, так нельзя делать?
Последнее редактирование: