比较两个数字
在 Kotlin 中,三个等号 ===
表示比较对象地址,两个 ==
表示比较两个值大小。
fun main(args: Array<String>) {
val a: Int = 10000
println(a === a) // true,值相等,对象地址相等
//经过了装箱,创建了两个不同的对象
val boxedA: Int? = a
val anotherBoxedA: Int? = a
//虽然经过了装箱,但是值是相等的,都是10000
println(boxedA === anotherBoxedA) // false,值相等,对象地址不一样
println(boxedA == anotherBoxedA) // true,值相等
}
这里的
Int?
表示的是boxedA
和anotherBoxedA
这两个不可变量,可以为Int
类型,也可以为空。如果不加上?
说明这个不可变量不能为空。 详细的解释参见:
Kotlin中Int和 Int? 以及 IntArray 和 Array的问题_Dream It Possible-CSDN博客_kotlin的intarray
类型转换
转化方法如下:
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
举个例子:
val b: Byte = 1 // OK, 字面值是静态检测的
val i: Int = b.toInt() // OK
布尔类型
只有ture和false两个值。
|| – 短路逻辑或
&& – 短路逻辑与
! - 逻辑非
数组
数组的创建有两种方式
一种是使用arrayOf()
,另一种是使用工厂函数。
这里只需要知道前面一个即可。
fun main(args: Array<String>) {
//a数组为[1,2,3]
val a = arrayOf(1, 2, 3)
//b数组为[0,2,4]
val b = Array(3, { i -> (i * 2) }) // 这里的i是从0开始
//读取数组内容
println(a[0]) // 输出结果:1
println(b[1]) // 输出结果:2
}