变量
在Kotlin中,定义变量是用关键词开始,然后是变量名称,最后才是变量类型,如下:
var a : Int = 10
1
如果不指明变量的类型,编译器也能分析出 = 后的表达式的值,并将它的类型作为变量的类型,这是Kotlin的特点之一:类型推断。如下:
var str ="hello world!"
1
如果变量没有初始化值,编译器无法推断出它的类型,这时就必须显式地指定类型,如下:
var str1 : String
1
常量
Kotlin中声明变量的关键词有两个:val 和 var,其中val声明的是不可变引用,即不能在初始化之后再次赋值的变量;而var声明的是普通的变量,如下:
var a =50
a =20 // TODO OK
val b=a //TODO OK
b=100 // TODO Error. Val cannot be reassigned
1
2
3
4
5
但是 Kotlin推荐尽可能地使用 val 来声明变量,仅在必要的时候使用 var。
基本类型
1、数字
var age: Int = 12
var price: Double = 45.0
var distance: Float = 78f
var shortType: Short = 45
var longType: Long = 99
var byteType: Byte = 12
1
2
3
4
5
6
需要注意的是: 在Kotlin中 较小类型并不是较大类型的子类型,因此较小的类型不能隐式转换为较大的类型,如下:
var c:Int= 100
var d: Long = c // TODO error: Type mismatch
1
2
数字之间的转化,应该使用显示转换。每个数字类型都支持如下的转换:
Byte:toByte()
Short:toShort()
Int: toInt()
Long:toLong()
Float:toFloat()
Double:toDouble()
并且算术运算时也会有重载做适当转换:
var l = 1L + 3 // TODO Long + Int => Long
1
2、字符
在Kotlin中,字符用 Char 类型表示,它们不能直接当作数字。字符字面值用单引号括起来: ‘1’。 特殊字符可以用反斜杠转义。 支持这几个转义序列:\t、 \b、\n、\r、\’、\”、\ 和 $。 编码其他字符要用 Unicode 转义序列语法:’\uFF00’,字符也支持显示转换:
toChar(): Char
具体使用如下:
var charType: Char = 'a'
1
3、布尔值
布尔用 Boolean 类型表示,它有两个值:true 和 false。若需要可空引用布尔会被装箱。内置的布尔运算有:
短路逻辑或运算 : ||
短路逻辑与运算 : &&
逻辑运算 非 : !
具体使用如下:
var flag: Boolean = true
1
引用类型–String字符串
字符串用 String 类型表示。字符串是不可变的。 字符串的元素——字符可以使用索引运算符访问: s[i]。 可以用 for 循环迭代字符串,如下:
val str = "abcd"
for (c in str) {
println(c)
}
1
2
3
4
在Kotlin中有一个新特性,叫做 字符串模板 。它可以让你在字符串字面值中引用局部变量只需要在变量名称中加上字符 $ ,这等价于使用 ‘+’连接字符串。如果要在字符串中使用 $ ,可以使用转义符 $ 。如果要引用更复杂的表达式,只需要把表达式用花括号括起来然后在前面加上 $即可,具体使用如下:
val str = "abcd"
for (index in str.indices) {
println("in $index is ${str[index]}")
}