Scala does not have checked exceptions like Java, so you can't do soemthing like this to force a programmer to deal with an exception:
public void stringToInt(String str) throws NumberFormatException {
Integer.parseInt(str)
}| // | |
| // @author: Mateusz Kubuszok | |
| // | |
| // requirements: ammonite 1.1.0 | |
| // usage: run `amm` and copy paste into REPL | |
| import $ivy.`org.typelevel::cats-core:1.3.1`, cats._, cats.syntax.all._ | |
| import $ivy.`org.typelevel::cats-effect:1.0.0`, cats.effect._, cats.effect.syntax._ | |
| import $ivy.`io.circe::circe-core:0.9.3`, io.circe._, io.circe.syntax._ | |
| import $ivy.`io.circe::circe-generic:0.9.3`, io.circe.generic.auto._ |
Во-первых, это моё мнение, и я его никому не навязываю. Во-вторых, список не обязательно исчерпывающий. В-третьих, он ориентирован на определённую "философию", которая тоже не является исчерпывающей или абсолютно правильной. Поэтому, если Вам эти рекомендации не подходят -- не следуйте им.
Философия такова. Для того чтобы осмысленно программировать на начальном этапе не нужно знать Computer Science, теорию алгоритмов и сложности вычислений или детально разбираться в устройстве и работе компьютера. Достаточно хорошо делать две вещи:
"For comprehension" is a another syntaxe to use map, flatMap and withFilter (or filter) methods.
yield keyword is used to aggregate values in the resulting structure.
This composition can be used on any type implementing this methods, like List, Option, Try, Future...