Kotin重要特性:
- 类型推导:定义变量不再需要显示声明类型,由编译器自动推导出变量的类型 如 val a ="hello” val b = 5 val c = 10L
- 表达式函数: fun sum(x: Int, y: Int) = x + y // 省略了{},Kotlin支持这种用单行表达式与等号的语法来定义函数,叫作表达式函数体,作为区分,普通的函数声明则可叫作代码块函数体。
val 和 var 的使用规则
如果说
var 代表了
varible(变量),那么
val 可看成
value(值)的缩写。但也有人觉得这样并不直观或准确,而是把
val 解释成
varible + final,即
通过 val 声明的变量具有 Java 中的 final 关键字的效果,也就是引用不可变。
我们可以在 IntelliJ IDEA 或 Android Studio 中查看
val 语法反编译后转化的 Java 代码,从中可以很清楚地发现
它是用 final 实现这一特性的。
val 的含义:引用不可变 (变量一旦初始化就不能更改指向,但是可以更改变量指向的内容里的值) 因此,
val 声明的变量是只读变量,它的引用不可更改,但并不代表其引用对象也不可变。事实上,我们依然可以修改引用对象的可变成员。这跟 Java 中的
final 对象概念上是一样的。
class Book(var name: String) { // 用 var 声明的参数 name 引用可被改变
fun printName() {
println(this.name)
}
}
fun main() {
val book = Book("Thinki