私はちょうどkotlinを学び始めました。そして、私はこの小さな問題を見つけました。私はオブジェクトのリストを持っており、指定された範囲内でリストをフィルタリングしています。範囲内でオブジェクトを取得することができるが、私は外側の境界の範囲を変更したときに、そう簡単な質問を保つために、外側の範囲内のリストフィルター - KOTLIN
を空の配列を取得しています、と言うが
のような整数のリストを持っていますoriginal list [1, 2, 3, 4, 5, 6, 7]
と要素
作業条件
fun dropper(args: ArrayList<Int>): List<Int> {
return args.filter { it in 2..6 } // it >= 2 && it <= 6
}
をフィルタリングスポイト機能を備えています
出力は
[2, 3, 4, 5, 6]
として受信されるが、私は空のリストとして出力を得る
fun dropper(args: ArrayList<Int>): List<Int> {
return args.filter { it in 4..2 } // it <= 2 && it >= 4
// it in 4..2 , was suggested by the IDE
}
に範囲を変更するとき。
この関数が呼び出された後、意図した結果を与える他の操作にリストを渡すので、リストの値がクリアされていないことを確認してください。
これは '4..2'の範囲に値がないので元のリストを返します。条件は常に真です。 (言い換えれば、 'it!は4..2'には何もないので、' it'値は 'true'です)。また、ここで使用しているオペレータは、実際は['!in'](https://kotlinlang.org/docs/reference/operator-overloading.html#in)です。 – zsmb13