这是关于学习Kotlin的这一多部分系列的第22篇文章。如果您想了解更多信息,请参阅我们的 系列索引。可在此处找到此代码 。
我在Kotlin最喜欢的功能之一是 范围。您可以轻松 1…10 地获得从1到10的数字范围。另外,我发现我想与Kotlin合作的方式很多,就是使用集合,比如列表和数组。
对于所有这些,我们经常想知道范围或集合中何时存在某些东西,这就是 in 运算符进入的位置。在下面的示例中,我们使用 in 运算符首先检查数组中的值,然后在范围,然后是字符串中的子字符串; 以下每个示例都将返回true。
val letters = arrayOf(“a”,“b”,“c”,“d”,“e”)
的println(“C” 中的 字母)
的println(5 在 1。10)
println(“猫 在帽子里” 中的 “猫”)
当然,Kotlin也允许我们将它添加到我们自己的类中。Koans的例子从一个代表一系列日期的类开始。
class DateRange(val start:MyDate,val endInclusive:MyDate)
然后我们添加一个名为的运算符函数 contains,它检查提供的值是否落在类的两个日期之间:
class DateRange(val start:MyDate,val endInclusive:MyDate):Iterator < MyDate > {
operator fun 包含(d:MyDate)= start <= d && d <= endInclusive
}
使用这个新函数,我们可以编写自己的 in 语句,例如:
fun checkInRange(date:MyDate,first:MyDate,last:MyDate):Boolean {
返回 日期 的 日期范围(第一,最后)
}