比较两个数字

在 Kotlin 中,三个等号 ===表示比较对象地址,两个 == 表示比较两个值大小

  1. fun main(args: Array<String>) {
  2. val a: Int = 10000
  3. println(a === a) // true,值相等,对象地址相等
  4. //经过了装箱,创建了两个不同的对象
  5. val boxedA: Int? = a
  6. val anotherBoxedA: Int? = a
  7. //虽然经过了装箱,但是值是相等的,都是10000
  8. println(boxedA === anotherBoxedA) // false,值相等,对象地址不一样
  9. println(boxedA == anotherBoxedA) // true,值相等
  10. }

这里的Int?表示的是boxedAanotherBoxedA这两个不可变量,可以为Int类型,也可以为空。如果不加上?说明这个不可变量不能为空。 详细的解释参见:

Kotlin中Int和 Int? 以及 IntArray 和 Array的问题_Dream It Possible-CSDN博客_kotlin的intarray


类型转换

转化方法如下:

  1. toByte(): Byte
  2. toShort(): Short
  3. toInt(): Int
  4. toLong(): Long
  5. toFloat(): Float
  6. toDouble(): Double
  7. toChar(): Char

举个例子:

  1. val b: Byte = 1 // OK, 字面值是静态检测的
  2. val i: Int = b.toInt() // OK

布尔类型

只有ture和false两个值。

  1. || 短路逻辑或
  2. && 短路逻辑与
  3. ! - 逻辑非

数组

数组的创建有两种方式
一种是使用arrayOf(),另一种是使用工厂函数
这里只需要知道前面一个即可。

  1. fun main(args: Array<String>) {
  2. //a数组为[1,2,3]
  3. val a = arrayOf(1, 2, 3)
  4. //b数组为[0,2,4]
  5. val b = Array(3, { i -> (i * 2) }) // 这里的i是从0开始
  6. //读取数组内容
  7. println(a[0]) // 输出结果:1
  8. println(b[1]) // 输出结果:2
  9. }