Implicita tipo Unit
ritorno:
def f() {println("ABC")}
esplicita tipo Unit
ritorno:
def g(): Unit = {println("ABC")}
Tipo di ritorno dedotta dall'ultimo metodo espressione, ancora Unit
perché questo è il tipo di println
, ma confusa:
def h() = println("ABC")
Tutti i metodi sopra sono equivalenti. Preferirei f()
perché la mancanza dell'operatore =
dopo la firma del metodo da sola è sufficiente per me. Utilizzare esplicito : Unit
quando si desidera documentare ulteriormente il metodo. L'ultima forma è confusa e in realtà trattata come un avviso in intellij-idea.
L'operatore =
è fondamentale. Se è presente significa: "si prega di restituire qualsiasi cosa l'ultima dichiarazione restituisce" nel corpo del metodo. Ovviamente non è possibile utilizzare questa sintassi per i metodi abstract
. Se non lo è, si assume Unit
.
fonte
2012-02-27 08:20:01
Grazie Tomasz. Il codice che hai condiviso richiama un'altra domanda: perché ti è permesso di omettere il segno '=' in 'f' e' g'? – balteo
Se la funzione restituisce 'Unità', è possibile omettere il segno' = '. Qualsiasi funzione definisce senza un segno '=' restituisce 'Unità' – Nicolas
Perché nelle funzioni' Unità' il '=' è opzionale. Tuttavia è obbligatorio per tutti gli altri tipi poiché restituiscono effettivamente qualcosa –