【发布时间】:2017-10-25 04:32:51
【问题描述】:
我刚开始学习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
}
将输出作为空列表。
我很确定列表值没有被清除,因为在调用这个函数之后,我将列表传递给另一个操作,它给出了预期的结果。
【问题讨论】: