经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » Android » 查看文章
kotlin之变量的可空与非空
来源:cnblogs  作者:xing_star  时间:2019/9/20 11:23:52  对本文有异议

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

本文同步自http://javaexception.com/archives/218

kotlin之变量的可空与非空

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

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

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

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

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

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

kotlin相关文章

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

 

原文链接:http://www.cnblogs.com/xing-star/p/11555361.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号