Tag: 运营商

* arrayOf()是一个语句?

当我注意到一些奇怪的东西时,我正在使用扩散算子 : // compiles val list1 = listOf(1, 2, *(if(0 > 1) arrayOf(3) else arrayOf())) // does not compile val list2 = listOf(1, 2, if(0 > 1) *arrayOf(3) else *arrayOf()) 其中一个编译器错误是 期待一个表达 那么, *arrayOf()是一个语句吗? 如果是,那么如何通过listOf()来评估?

使用in运算符来比较字符串与字符串的范围

我正在使用运算符来检查值是否在范围内。 但我无法准确理解如何与字符串范围进行比较。 下面是我尝试过的几个参数和输出: println("KOTLIN" in "J".."K") false println("KOTLIN" in "Java".."Scala") true println("KOTLIN" in "Java".."Bhuv") false

Kotlin:单数加/减运算符在数字上做什么?

我已经注意到在Kotlin中已经定义了所有数字类型的unaryPlus和unaryMinus操作符。 这些运营商的目的是什么? 它们是否以某种方式连接到inc和dec的前缀形式?

Kotlin中的箭头(“ – >”)是什么?

可能有点宽泛的问题,但官方文档甚至没有提到作为一个独立实体的箭头运算符(或语言构造,我不知道哪一个词更准确)。 最明显的用法是when条件语句,它用于将表达式分配给特定的条件: val greet = when(args[0]) { "Appul" -> "howdy!" "Orang" -> "wazzup?" "Banan" -> "bonjur!" else -> "hi!" } println(args[0] +" greets you: \""+ greet +"\"") 还有什么其他用途,它们是做什么的? Kotlin中的箭头运算符有一般意义吗?

平等在Kotlin

我正在学习Kotlin,拥有C ++和Java背景。 我期待以下打印true ,而不是false 。 我知道==映射到equals 。 equals的默认实现是否不比较每个成员,即firstName和lastName ? 如果是这样,它不会看到字符串值相等(因为==地图再次equal )? 显然有一些与平等与身份相关的东西,我还没有在科特林的权利。 class MyPerson(val firstName: String, val lastName: String) fun main(args: Array<String>) { println(MyPerson("Charlie", "Parker") == MyPerson("Charlie", "Parker")) }