Power Features Intermediate 13 min

Option & Result

Option bedeutet: Vielleicht ist ein Wert da. Result bedeutet: Entweder Erfolg oder Fehler.

01 Lesson

Option: Wert oder kein Wert

Statt null zu verstecken, sagt Option offen: Hier kann etwas fehlen.

option.ems
Some<String> some = Some("Emerald");
None<String> none = None();

println(some.orElse("fallback"));
println(none.orElse("fallback"));
02 Lesson

Result: Erfolg oder Fehler

Result macht Fehler zu normalen Werten. Du musst sie nicht als Ausnahme durch die Gegend werfen.

result.ems
Success<Int, String> ok = Success(42);
Failure<Int, String> err = Failure("failed");

println(ok.unwrapOr(0).toString());
println(err.unwrapOr(0).toString());
println(err.errorOr("none"));
03 Lesson

Idioten-sicher gesagt

Option: “Vielleicht habe ich etwas.”

Result: “Ich habe entweder das Ergebnis oder eine Erklärung, warum es nicht geklappt hat.”