基本类型

当然,像integer,float或者boolean等类型仍然存在,但是它们全部都会作为对象存在的。基本类型的名字和它们工作方式都是与Java非常相似的,但是有一些不同之处你可能需要考虑到:

  • 数字类型中不会自动转型。举个例子,你不能给Double变量分配一个Int。必须要做一个明确的类型转换,可以使用众多的函数之一:
  1. val i:Int=7
  2. val d: Double = i.toDouble()
  • 字符(Char)不能直接作为一个数字来处理。在需要时我们需要把他们转换为一个数字:
  1. val c:Char='c'
  2. val i: Int = c.toInt()
  • 位运算也有一点不同。在Android中,我们经常在flags中使用“或”,所以我使用”and”和”or来举例:
  1. // Java
  2. int bitwiseOr = FLAG1 | FLAG2;
  3. int bitwiseAnd = FLAG1 & FLAG2;
  1. // Kotlin
  2. val bitwiseOr = FLAG1 or FLAG2
  3. val bitwiseAnd = FLAG1 and FLAG2

还有很多其他的位操作符,比如sh1, shs, ushr, xorinv。当我们需要的时候,可以在Kotlin官网查看。

  • 字面上可以写明具体的类型。这个不是必须的,但是一个通用的Kotlin实践时省略变量的类型(我们马上就能看到),所以我们可以让编译器自己去推断出具体的类型。
  1. val i = 12 // An Int
  2. val iHex = 0x0f // 一个十六进制的Int类型
  3. val l = 3L // A Long
  4. val d = 3.5 // A Double
  5. val f = 3.5F // A Float
  • 一个String可以像数组那样访问,并且被迭代:
  1. val s = "Example"
  2. val c = s[2] // 这是一个字符'a'
  3. // 迭代String
  4. val s = "Example"
  5. for(c in s){
  6. print(c)
  7. }