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
, Future
...