Scalastyle (IntelliJ 2.016,1 default) dice che questa espressione booleana può essere semplificataespressione Scalastyle booleana può essere semplificata
val t = Option(true)
val f = Option(false)
if(t.contains(true) && f.contains(false)) {
println("booop")
}
posso liberarmi di questo modificando il caso di:
if(t.contains(true).&&(f.contains(false)))
O per cambiare & & a &
Ma non vedendo davvero come questo lo sta semplificando, qualcuno potrebbe spiegare n cosa sta succedendo?
Aggiornamento non sembra essere correlato a se i vals sono noti al momento della compilazione, o che vengano definiti a livello locale. Il seguente codice è anche ottenere l'avvertimento che l'espressione può essere semplificazioni rese:
object TestFoo {
def bar(t: Option[Boolean]) = {
val f = Option(scala.util.Random.nextBoolean)
if (t.contains(true) && f.contains(false)) println("booop")
}
def main(args: Array[String]) = bar(t = Option(scala.util.Random.nextBoolean))
}
io proprio non capisco come dovrei fare che qualsiasi semplice, c'è qualche strano Opzione [booleano] confrontando Sono perdersi?
Penso che dato che si sta dichiarando quei valori e solo con loro c'è, ti aspetta a in-line quei valori nella tua istruzione 'if' – hasumedic
Non sembra dove sono definite le variabili o se il valore è noto al momento della compilazione. Aggiornato con un altro esempio – klogd
Cosa succede quando si utilizza la notazione infix? per esempio. '(t contiene true) && (f contiene false)' – hasumedic