Kotlin实战1 — 函数和变量
函数
1 | fun max(a: Int, b: Int): Int { |
函数声明以关键字fun开始,函数名紧随其后,括号括起来参数列表,参数列表后面跟着返回类型,与参数用一个冒号隔开。
在Kotlin中,if是表达式,而不是语句。表达式:表达式由变量,操作符和方法调用组成,表达式的返回值类型由表达式中的元素(如操作符,变量等)决定如:a = 1。语句:是完整的执行单元,如:赋值表达式、所有使用
++
或者--的变量
、方法引用、创建对象的表达式,如:a++;
表达式函数体
1 | fun max(a: Int, b: Int): Int = if(a > b) a els b |
如果函数体写在花括号中,我们说这个函数有代码块体,如果直接返回了一个表达式,它就有表达式体。对于表达式函数体来说,函数还可以省略返回值类型,编译器会分析作为函数体的表达式,并把它的类型作为函数的返回值类型,这种分析被称为类型推导。
变量
在Kotlin中,声明变量以关键字开始,然后是变量名,最后可以加上类型(也可以不加上)。
1 | val question = "the ultimate question of life,th universe,and everything" |
如果变量没有初始化器,就需要显示的指定它的类型
1 | val answer: Int |
可变变量和不可变变量
- val — 不可变引用。使用val声明的变量不能在初始化之后再次赋值,它对应的是Java的final变量。
- var — 可变引用。这种变量的值可以被改变,对应普通(非final)的Java变量
val引用自身是不可变的,但它指向的对象可能是可变的。例如:
1 | val languages = arrayListOf("Java") |
字符串模板
1 | fun main(args: Array<String>) { |
Kotlin可以在字符串字面值中引用局部变量,只需要在变量名称前面加上字符$。等价于Java中的字符串连接(“hello, “ + name + “!”)。还可以使用更复杂的表达式:
1 | fun main(args: Array<String>) { |
还可以在双引号中直接嵌套双引号,只要它们处于某个表达式的范围内(即花括号内)。
1 | fun main(args: Array<String>) { |