Kotlin操作员在,它,是



我是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参考文档中进行了解释。

最新更新