Hlavní navigace

Názor k článku Datový typ Option v programovacím jazyku Rust od xxxxx - Nějak jsem nepochopil ten rozdíl od C-čkového "#define...

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

    xxxxx (neregistrovaný) ---.142.broadband5.iol.cz

    Nějak jsem nepochopil ten rozdíl od C-čkového "#define MOJE_NAN MIN_INT a program plný podmínek testujících tuto speciální hodnotu" kontra "if let Some(val)= result"

    V C běžně užívám (své definované makro/inline funkci) něco ve stylu
    if NOTNAN(result=fun­kce(x,y)) { ...use result... } else { ...}

    Případně přímo NOTNAN(result=fun­kce(x,y)) && (...use result...)

    Jak se v Rust tedy omezí program plný podmínek. Lze nějak přímo použít Some(val), resp. unwrap, i když není definováno a výstupem je None? Nebo to v runtime také crashne, bez explicitní kontroly podmínkou na platnost? Má Rust nějakou implicitní ochranu navíc?

    P.S.: V C++ bývá výhodnější const a inline funkce. Je to prakticky totéž, ale pro jistotu to (mmch už v compile time) ohlídá typy a odhalí mojí případnou chybu.