1.变量定义必须初始化。且要么明确指明类型,要么必须直接赋值,否则编译不过
var temp = 1
var temp2: String 可以编译
println(temp2) 编译失败,temp2未初始化
lateinit
告诉编译器 不要检查变量是否为空,在使用之前肯定会赋值的
避免一路代码时一路 ?传递
万一的真的为空,会触发异常
2.变量一开始智能推断为一个类型,再改就会类型转化失败
var temp = "hello"
temp = 3
3.常见数据类型
4.变量的getter和setter专属写法
var name: String? = null
get() {
println ("call get name")
return field
}
set(value) {
println("call set name")
field = value
}