Kotlin入门系列(三) 运算符 char bollean 数组

Wang 2017-05-24 18:13:29

Kotlin 的运算符


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


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码

}

和数值类型一样,需要一个可空引用时,字符会被装箱。特性不会被装箱保留。


Kotlin 的Bollean

布尔值只有 true 或者 false

如果需要一个可空引用,则可以将布尔值装箱

布尔值的操作包括

|| – 短路或

&& – 短路与

! - 取反


Kotlin的 Array数组

数组在Kotlin中用 Array class类来表示,拥有 get set size方法,以及其他一些有用的成员函数。

class Array<T> private constructor() {
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator<T>
// ...
}  

为了创建一个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<String> 转为 Array<Any> ,这样就阻止了可能的运行时错误

Kotlin 有专门的类来表示原始类型从而避免过度装箱: ByteArray, ShortArray, IntArray 等等。这些类与 Array 没有继承关系,但它们有一样的方法与属性。每个都有对应的工厂函数:

val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]