Что-то должно быть методом, чтобы можно было строить расширения
Наверное, если X можно выразить через что-то более простое - оно идёт в расширения. getOrElse {} - это по факту надстройка над getOrNull() ?: {}
Дока говорит, что скорее наоборот)
ну а чем getOrNull лучше, чем result.value?
А чем result.value лучше? :)
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-result/get-or-null.html
он не требует написания метода?
А, проглядел, что мы про резалт. Пардон. 🌚
А если там throwable?
и что?
Полагаю, orNull() - это стандартный подход, определенный во всей стдлибе. Я бы ожидал его в методах.
Это общий подход к дизайну API: иметь минимальный набор в самом классе/интерфейсе, а всё остальное расширения.
Кажется, я понял
но при этом никаких жестких правил?
Нет, просто вроде есть рекомендация в coding guidelines или какие они там
Обсуждают сегодня