1、基本数据类型
Kotlin的基本数值类型包括byte,short,int,long,float,double等。字符不属于数值类型,是一个独立的数据类型。
数字类型中不会主动转换。例如,不能给Double变量分配Int。必须做一个明确的类型转换,可以使用众多的函数之一。
2、类型转换
每种数据类型都有下面这些转换:
toByte():Byte,
toShort():Short,
toInt():Int,
toLong():Long,
toFloat():Float,
toDouble():Double,
toChar():Char
有时候,也会有自动类型转换,前提是根据上下文环境推断出正确的数据类型而且数学操作符会做出相应的重载。例如:
val l = 1L+3 //Long+Int= Long
3、位操作符
对于Int和Long类型,还有一系列的位操作符可用,分别是:
shl(bits) - 左移动
shr(bits) - 右移动
ushr(bits) - 无符号右移动
and(bits) - 与
or(bits) - 或
xor(bits) - 异域
inv() - 反向
4、条件控制
when表达式:when将它的参数和所有分支条件进行比较,直到某个分支满足条件。
when既可以当作表达式使用,也可以当作语句使用。当被当作表达式的时候,符合条件的分支就是整个表达式的值,如果被当作语句使用,则忽略个别分支的值。类似于C#里的switch。
val x = 1when(x){ 1 -> print("x === 1") //输出 x === 1 2 -> print("x === 2") else ->{ print("x 不是1,也不是2") }}
这里的else相当于switch中的default。如果很多分支需要相同的处理条件的话,可以把多个条件放在一起,用逗号分隔。
5、循环控制
for循环:for循环可以对任何提供迭代器的对象进行遍历。
语法:for(item in collection) print(item)
val items = listOf("apple", "banana", "kiwi")for (item in items) { println(item)}for (index in items.indices) { println("item at $index is ${items[index]}")}
还有while与do...while循环,语法上与其他编程语言基本一样
println("----while 使用-----")var x = 5while (x > 0) { println( x--) //输出5,4,3,2,1}println("----do...while 使用-----")var y = 5do { println(y--) //输出5,4,3,2,1} while(y>0)