私はkotlinに新しいですで、私は上記のコードでstrAction.contains(「グリッド」を次のコードstring.containsを使用することができません()kotlin `when`表現
val strAction = "Grid"
when(strAction){
strAction.contains("Grid")->println("position is 1")
}
を使用するにはいくつかの方法を試してみました)この行は、互換性のないタイプ
私はkotlinに新しいですで、私は上記のコードでstrAction.contains(「グリッド」を次のコードstring.containsを使用することができません()kotlin `when`表現
val strAction = "Grid"
when(strAction){
strAction.contains("Grid")->println("position is 1")
}
を使用するにはいくつかの方法を試してみました)この行は、互換性のないタイプ
あなたのwhen
で唯一のケースがある場合strAction
val strAction = "Grid"
when {
strAction.contains("Grid") -> println("position is 1")
}
}
を渡す必要はありません、私の代わりにif
を使用することをお勧めします。それはすでにあなたがそこでやろうとしていることです:
val strAction = "Grid"
if(strAction.contains("Grid")){
println("position is 1")
}
さらに短いですね。
String
(when
)のスイッチをオンにしても、Boolean
の場合は正しく動作しません。しかし、このトリックは何をするだろうか:
val strAction = "Grid"
when(strAction.contains("Grid")){
true->println("position is 1")
}
しかし、やはりif
を実行してください。
他の回答は、問題が実際にどのような問題を解決する方法を説明しなく。あなたのコードはstrAction.contains("Grid")
を算出する(Boolean
になる)、その後この値でstrAction
を比較します。私。それは型に互換性がないので、彼らは等しくすることができません
if (strAction == strAction.contains("Grid")) {
println("position is 1")
}
と同等ですので、このブランチが取られることはありませんでしたし、コンパイラはこれを伝えます。
私はそこにあなたの助けのためにdownvote – YoLo