Scalastyle(2016.1デフォルトIntelliJの)簡略化することができ、このブール式は、私がもしに変更することで、この取り除くことができScalastyleブール式が
val t = Option(true)
val f = Option(false)
if(t.contains(true) && f.contains(false)) {
println("booop")
}
を簡素化することができると言う:
if(t.contains(true).&&(f.contains(false)))
ORでの変更する& & to &
しかし、これがどのように単純化されているのかは分かりませんが、 n何が起こっているの?
アップデートは ヴァルスはコンパイル時に知られている、またはそれらをローカルに定義されている場合に関連すると表示されません。次のコードも入手が式がsimplfiedことができるという警告です:いくつかの奇妙なオプションがあり、
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))
}
私はちょうど私はそれがどんな簡単にするためになってるか取得しない[ブール]私は比較しますに欠けている?
、それは、インラインにあなたを期待していますあなたの 'if'ステートメントの値 – hasumedic
変数がどこで定義されているか、値がコンパイル時に分かっているかのようには見えません。別の例で更新されました – klogd
埋め込み表記法を使用するとどうなりますか?例えば'(tは真を含む)&&(fは偽を含む)' – hasumedic