基本类型
当然,像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,xor或inv。当我们需要的时候,可以在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. }
