文章目录kotlin是一门静态语言,变量类型在运行时不会改变
- Kotlin
- 1.变量
- 1.1可空类型
- 1.2非空断言
- 1.3延迟初始化
- 1.4可见性
- 2.函数
- 2.1空安全设计
- 2.2可见性
- 2.3get,set
-
变量声明必须初始化,或声明成抽象的,因为变量没有默认值
-
所谓「可空不可空」,关注的全都是使用的时候,即「这个变量在使用时是否可能为空」
对于一些可能为空的变量,如网络获取的数据,我们允许它为空值
- 声明时,在类型右边加一个?号,解除它的非空限制
- 使用时,?. 对变量做一次非空确认后再调用方法,可以做到线程安全
- 使用时,!!.,告诉编译器不用帮我们检查了,也就和Java差不多
- lateinit var view: View
- 变量默认为public
fun cook(name: String): Food { ... }
-
若返回值为空,可以写为
-
fun main(): Unit {}
-
fun main() {}
-
- 可空变量可以传给可空参数
- 不可空变量可以传给不可空参数
- 可空变量不可传给不可空参数
- 默认为public
- override时
class User { var name = "Mike" fun run() { name = "Mary" // 的写法实际上是这么调用的 // setName("Mary") println(name) // 的写法实际上是这么调用的 // print(getName()) } }
如何 *** 作
class User { var name = "Mike" get() { return field + " nb" } set(value) { field = "Cute " + value } }
- getter,setter有了专门的关键字,get,set
- getter / setter 函数位于 var 所声明的变量下面
- setter 函数参数是 value
- field对编码的人不可见,但会自动应用于 getter 和 setter
- val修饰的变量不能调用 setter 函数,因此,val 声明的变量是不能重写 setter 函数的,但它可以重写 getter 函数,取值的时候仍然可能被修改,这也是和 Java 里的 final 的不同之处。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)