kotlin之变量的可空与非空

版权声明:本文为xing_star原创文章,转载请注明出处!java

本文同步自http://javaexception.com/archives/218生命周期

kotlin之变量的可空与非空

上面一篇文章,介绍了kotlin的变量与常量,以及修饰为常量或者是变量的评估标准。本篇文章主要想说的是一个变量的可空与非空。从字面意思上来看,可空就是容许变量的值是null,非空就是不容许变量的值是null。get

那么怎么知道一个变量应该被设置为可空的仍是非空的呢?同步

通常而言,对于集合类,好比List或者是MutableList,直接设置为非空类型就行了。好比private var list: MutableList<String> = mutableListOf()it

对于普通的Model或者是Android中的View或Fragment,设置为可空就好,它们通常是在后续的程序流程中被赋值的。好比View类,一个TextView或ImageView须要在onCreate()方法体内被赋值,在此以前,是不可能知道它的值的,因此,咱们通常这样声明,private var textView: TextView? = null 。 Fragment也是同样的,咱们在类的成员变量里面只能作一个申明,具体的赋值,是在Android Activity生命周期方法中,因此,写法是这样的。private var fragment: Fragment? = null。io

若是对于普通Model或者是View这样的类型,不想设置为可空,那么也是有办法的,好比委托的方式,以及lateinit的方式。可是通常状况下,仍是设置为可空。除非你真的想要非空,才设置为非空类型,非空类型如何声明呢,举个String类型的例子,private var content: String = “hello”table

若是你们有真正在生产环境中实践过kotlin的话,那么应该颇有感触,会碰到一些别扭的地方,好比textView?.setOnClickListener{//todo} textView?.text = “hello”相似这样的代码块。咱们明确的知道textView不会为空,可是因为语法的缘由,一旦声明为可空,后面就必须带上?.的判断代码。这个咱们再下一篇给出一种解决办法,来规避View的这种问题,将View定义为非空类型。变量

kotlin相关文章

kotlin之变量与常量 http://javaexception.com/archives/217kotlin

相关文章
相关标签/搜索