Hlavní navigace

Názor k článku Datový typ Option v programovacím jazyku Rust od dizzy - presne toto som sa tiez pytal sam seba...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 2. 2017 8:03

    dizzy (neregistrovaný) ---.212-5-214.telecom.sk

    presne toto som sa tiez pytal sam seba ked som prechadzal z javy na scalu. Dobre je to hlavne ako nahrada za NULL hodnoty a to hned z dvoch dovodov:
    1 - hned z deklaracie vidis, ze funkcia nemusi vratit hodnotu a nuti ta to tento stav osetrit (co v pripade zlej dokumentacie alebo lenivosti programatorov byva dost castym zdrojom chyb)
    2 - prehladnost zapisu - ak mas napriklad zretazene 3 funkcie, z ktorych kazda je zavisla na vysledku tej predchadzajucej, v scale (a pravdepodobne aj v ruste) mozes spravit nieco taketo:

    funkcia1().flat­Map(res1 => funkcia2(resul­t1)).flatMap(res2 => funkcia3(resul­t3)).getOrElse(­...)

    co je imho omnoho elegantnejsie ako:

    typ1 res1 = funkcia1();
    if(typ1) {
    res2 = funkcia2(res2);
    if(res2)
    res3 = funkcia3(res3);
    if(res3)
    return res3;
    else ...
    else...
    else...