Kotlin支持标准的运算符比如 + - * / % 和JAVA一致的,
至于位运算,Kotlin 并没有提供特殊的操作符,只是提供了一些方法,比如
val x = 1 shl 2//输出4 代表有符号左位移 (shift left 英文缩写)
shl(bits) – 有符号左位移 (Java's << )
shr(bits) – 有符号右位移 (Java's >> )
ushr(bits) – 无符号右位移 (Java's >>> )
and(bits) – 位与
or(bits) – 位或
xor(bits) – 位异或
inv() – 位反转
Kotlin的character用类型 char 表示 不能直接当作number 对待 比如:
fun check(c: Char) {
if (c == 1) { // 编译器报错了
// ...
}
}
字符是由单引号包裹的 '1' 特殊字符可以用反斜线转义 比如
\t \n \r \\ 和JAVA没多大区别,
我们能够显式的把char 转换成int
fun decimalDigitValue(c: Char): Int { //假设输入参数'9' 输出为 9 数字
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() //显示转换为数值类型 如果去掉 - '0'.toInt() 输出 57 是ascii码
}
和数值类型一样,需要一个可空引用时,字符会被装箱。特性不会被装箱保留。
布尔值只有 true 或者 false
如果需要一个可空引用,则可以将布尔值装箱
布尔值的操作包括
||
– 短路或
&&
– 短路与
!
- 取反
数组在Kotlin中用 Array class类来表示,拥有 get set size方法,以及其他一些有用的成员函数。
class Array
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator
// ...
}
为了创建一个Array 我们可以用 arrayOf()库函数,比如 arrayOf(1,2,3) ,创建一个
[1,2,3]数组,我们也可以用 arrayOfNull()函数创建一个指定长度的被null元素填充的数组。
另一个选项是通过一个工厂函数,给出数组长度 返回的是每个index索引和对应的表达式运算结果 比如:
val asc = Array(5, {i -> (i * i).toString() }) //和python很像 这结果是生成 0 1 2 3 4 的平方数组
引用数据元素依旧是 asc[i] 和JAVA一样
注意:和 java 不一样,arrays 在 kotlin 中是不可变的。这意味这 kotlin 不允许我们把 Array
Kotlin 有专门的类来表示原始类型从而避免过度装箱: ByteArray, ShortArray, IntArray 等等。这些类与 Array 没有继承关系,但它们有一样的方法与属性。每个都有对应的工厂函数:
val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]