Sono nuovo in scala e sto provando a scrivere una funzione letterale che controlla se un intero dato è dispari o no. il mio primo tentativo è:come semplificare letteralmente la funzione di scala in questo modo?
val isOdd = (x:Int) => (x & 1) == 1
funziona benissimo, e, dal momento che il parametro X appare solo una volta all'interno di questa funzione letterale, sono tentato di utilizzare il "_" notazione per semplificare ulteriormente, come questo:
val isOdd = ((_:Int) & 1) == 1
tuttavia questa volta il compilatore si lamenta:
warning: comparing a fresh object using `==' will always yield false val isOdd = ((_:Int) & 1) == 1
cosa significa questo avvertimento? perché il compilatore riconosce ((_ :Int) & 1)
come oggetto fresco anziché un'operazione bit a bit che genera un valore? c'è un modo per scrivere questa funzione letterale usando la notazione "_"?
Basta usare: 'val dispari =! anche (_: Int) ' –