我是Kotlin的新手,这三个运算符之间没有区别,它们之间有关系吗?它们与Java的比较如何?
不,它们之间没有直接联系,除了在Kotlin中是两个字母的关键字。
它们用于不同的用途:
-
in
用于测试一个对象是否包含在另一个对象中(Java中contains()
的语法糖(:if (someObject in someList) …
它也用于遍历集合(Java只使用
:
(:for (item in someList) …
并指定类型参数是反变量的(Java将使用
? super
(:interface List<out E>
-
it
在一个只接受一个参数的lambda中使用,以简洁的方式引用参数,而不必给它一个名称(没有直接的Java等价物(:someList.filter{ it < 10 }
-
is
用于测试对象是否为给定类型(与Java中的instanceof
相同(:if (s is String) …
正如@Adrian所说,所有关键词都在Kotlin参考文档中进行了解释。