1. 位操作符
shl(bits) - 左移位,对应java <<
shr(bits) - 右移位,对应Java >>
ushr(bits) - 无符号右移位,对应Java >>>
and(bits)- 与,&&
or(bits)- 或,||
xor(bits)- 异或
inv()- 反向
2. 字符
在kotlin中,Char 不能直接和字符操作,Char必须是单引号包含起来的,比如 ‘a', ’0‘。这点和Java不同
fun check(c: char) {if (c == 1) //错误,类型不兼容
}
3. 字符比较与转换
fun digit(c: Char): Int {if (c !in '0'..'9') throw IllegalArgumentException("Out of Range")//显示转换为数字return c.toInt() - '0'.toInt()
}
4. 数组
与Java不同,Kotlin中数组是不协变的(invariant)
fun array(args: Array<String>) {//[1,2,3]var a = arrayOf(1,2,3)//[0,2,4]var b = Array(3, {i -> (i * 2)})println(a[0])println(b[1])//kotlin 数组,还有ByteArray、ShortArray、IntArray,省去了装箱操作var x: IntArray = intArrayOf(1, 2, 3)x[0] = x[1] + x[2]
}
5. 字符串
fun str(str:String) {for (c in str) {println(c)}
}
6. 与Java不同的是,Kotlin支持三个引号 """ 扩起来的字符串,支持多行字符串
fun str(args: Array<String>) {var text = """多行字符串多行字符串"""println(text)/*String 可以通过 trimMargin() 方法来删除多余的空白*/var text2 = """|多行字符串|多行字符串“”“.trimMargin()println(text2)
}
7. 字符串模版
字符串可以包含模板表达式,即一些小段代码,会求值,并把结果合并到字符串中。
模板表达式以美元符($)开头,由一个简单的名字构成
或者用花括号扩起来的任意表达式
此外,原生字符串和转义字符串内部都支持模板
fun strMode(args: Array<String>) {var i = 10var s = "i = $i" //求值,结果为字符串 "i = 10"print(s)/*花括号扩起来的任意表达式*/s = "runoob"var str = "$s.length is ${s.length}" //求值,结果为字符串 “runoob.length is 6”print(str)// "$" 字符的转义val price = """${'$'}9.9"""println(price) //结果为 $9.9}