Ну, здесь Option - вообще лишнее. Есть Future/Promise в стандартной библиотеке, Deferred в Cats, что-то похожее в ZIO. Это все композируется в более эффективные конструкции, чем регулярный опрос состояния. Посмотрите на такой вариант:
future andThen {
case Left(msg) => println(s"Ошибка: $msg")
case Right(data) => println(s"Успех! Данные: $data")
}
Возможно, вам стоит пересмотреть архитектуру приложения?
Но если уж так хочется разделить три этих случая - алгебраические классы к вашим услугам. Если вы в третьей Scala, используйте enum. Во второй - три case-класса с общим предком. Типа такого:
trait Status[+T] {
def print(): Unit
}
object Status {
case object Running extends Status[Nothing] {
def print(): Unit = println("Загрузка...")
}
final case class Success[T](data: T) extends Status[T] {
def print(): Unit = (s"Успех! Данные: $data")
}
final case class Failure[T](msg: String) extends Status[Nothing] {
def print(): Unit = println(s"Ошибка: $msg")
}
}
И в Rust, и в Scala (откуда, скорее всего и пришел такой синтаксис вариантов возвращаемых значений) есть даже более красивая конструкция - pattern matching. Я имею в виду функциональный, а не тот, который из регекспов. :) Плюс декомпозиция. Всё это в Котлине вроде уже есть.
Нет, это совсем не checked exceptions. Это попытка уйти от исключений в принципе. Кроме того, написать лямбда функцию с checked exception невозможно. А с такой возвращаемой ошибкой - пожалуйста. Исключения - одна из родовых травм Java, и всем JVM-языкам приходится возиться с ними, к сожалению.
Есть ещё могильщик хороших идей: Funcom. Все игры доступны, но по сути заброшены. Как минимум пару ММО: Anarchy Online и The Secret World (Secret World: Legends) - просто шедевры сеттинга. Особенно последняя (я вообще на нее предзаказал пожизненный доступ). Миры открыты, можно прийти и поиграть, но игры не развиваются. Никакого нового контента. Уверен, Dune: Awakening ждет та же судьба. Хотя, наверное, не жалко. Уж очень унылой игра вышла.
Регион - это, конечно, хорошо. Но вы правда там собираетесь провести всю жизнь, не выезжая в отпуск, например? В других регионах цены и зарплаты другие могут быть. Сильно выше, чем у вас. Извините, если утрирую, но тут какая-то крестьянская логика. Зачем уезжать из колхоза, если в нём есть еда? Запереться в медвежьем углу и кормиться с огорода. Я много думал над этим вопросом, но, мне кажется, по пирамиде Маслоу надо всё же подниматься наверх. Извините, если обидел.
Сеньор не может написать алгоритм бинарного поиска? Серьёзно?
Та же самая история - если что-то присутствует на низком уровне, почему его надо тащить на высокий?
Как из-за разницы в час (три, девять, двенадцать) можно удалить данные за три месяца?
Ну, здесь Option - вообще лишнее. Есть Future/Promise в стандартной библиотеке, Deferred в Cats, что-то похожее в ZIO. Это все композируется в более эффективные конструкции, чем регулярный опрос состояния. Посмотрите на такой вариант:
Возможно, вам стоит пересмотреть архитектуру приложения?
Но если уж так хочется разделить три этих случая - алгебраические классы к вашим услугам. Если вы в третьей Scala, используйте enum. Во второй - три case-класса с общим предком. Типа такого:
Передача значений из оперативки в регистры процессора физически присутствуют в любой программе. Или "это другое"?
А можно пример "нечитаемой хрени"?
И в Rust, и в Scala (откуда, скорее всего и пришел такой синтаксис вариантов возвращаемых значений) есть даже более красивая конструкция - pattern matching. Я имею в виду функциональный, а не тот, который из регекспов. :) Плюс декомпозиция. Всё это в Котлине вроде уже есть.
Нет, это совсем не checked exceptions. Это попытка уйти от исключений в принципе. Кроме того, написать лямбда функцию с checked exception невозможно. А с такой возвращаемой ошибкой - пожалуйста. Исключения - одна из родовых травм Java, и всем JVM-языкам приходится возиться с ними, к сожалению.
На хабре надо добавить причину минусов: влоггер и генерированный текст.
Есть ещё могильщик хороших идей: Funcom. Все игры доступны, но по сути заброшены. Как минимум пару ММО: Anarchy Online и The Secret World (Secret World: Legends) - просто шедевры сеттинга. Особенно последняя (я вообще на нее предзаказал пожизненный доступ). Миры открыты, можно прийти и поиграть, но игры не развиваются. Никакого нового контента. Уверен, Dune: Awakening ждет та же судьба. Хотя, наверное, не жалко. Уж очень унылой игра вышла.
Когда используете терминологию, потрудитесь, пожалуйста, уточнить, что она значит. Например, слово "шизоид" с вашими фантазиями имеет мало общего.
Регион - это, конечно, хорошо. Но вы правда там собираетесь провести всю жизнь, не выезжая в отпуск, например? В других регионах цены и зарплаты другие могут быть. Сильно выше, чем у вас. Извините, если утрирую, но тут какая-то крестьянская логика. Зачем уезжать из колхоза, если в нём есть еда? Запереться в медвежьем углу и кормиться с огорода. Я много думал над этим вопросом, но, мне кажется, по пирамиде Маслоу надо всё же подниматься наверх. Извините, если обидел.
"Я просто выполнял приказ". Но всё равно повесили.
А вот это уже красный флаг для работодателя - платить не будут, работа за идею.
Исключения и нуллы - вечная боль Java и JVM- языков.
Надо уже обучить модель, чтобы она уже писала код согласно рекомендациям.
Вот этот пример тоже в голову пришёл :)
Apache Spark гаписан на Java?
Распарсить json всё же более затратно.
Да. Это известный признак делимости на максимальное число, представленное одной цифрой. Работает в любой системе исчисления.