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

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

kotlin之变量与常量

最近开始做新产品,于是乎用起了kotlin,早在17年,还是上家公司的时候,用的比较多,后来到了新公司,还是写起了java,既然又重新用起了kotlin,那么就开始一个系列的文章吧,总结下关于kotlin相关的一些知识点。

本篇主要说变量与常量,变量在kotlin中,用var来修饰声明,常量是val,那么一个对象或者是普通类型我们应该将它声明为变量还是常量,我有自己判断的标准。

如果是普通类型,比如Int,Double,Float,String等基础类型的,如果能够确定后面不会更改它的值,那么就定义为常量,比如val maxRetryCount: Int = 5。这种就是确定了不会修改maxRetryCount的值。如果能够确定在后续的程序逻辑中更改它的值,那么就定义为变量,比如var retryCount: Int = 1。

如果是数组类型的呢,比如MutableList<Fragment>这样的集合类型,对于这种我倾向于是常量类型,因为数组是个容器,只是用来存放一个个的子元素的。可以定义为val fragments: MutableList<Fragment> = mutableListOf()

如果是我们定义的Model之类的类型呢,如User或者是Fragment之类的对象类型。在Activity类中,有两个成员变量,一个是user,一个是fragment。但是呢,对这两个变量的赋值是放在后面的,只好将他们定义为变量,用var修饰。对于user是var user: User? = null, 对于fragment是var fragment: Fragment? = null

看上面的,我们这里引出了一个变量可以是可空类型的,下篇我们在讲讲变量的可空与非空。

最新文章

  1. 【原】tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig的解决
  2. 【原】移动web页面给用户发送邮件的方法 (邮件含文本、图片、链接)
  3. 一步步学习javascript基础篇(5):面向对象设计之对象继承(原型链继承)
  4. Tomcat7基于Redis的Session共享实战一
  5. [WebServer] Windows操作系统下 Tomcat 服务器运行 PHP 的环境配置
  6. selected 刷新页面后selected选中的值保持不表(thinkphp 从控制器assign 传值到js)
  7. POJ3691 DNA repair(AC自动机 DP)
  8. uva 10562 undraw the trees(烂题) ——yhx
  9. Update startup files更新安装文件
  10. POJ 1751 Highways (最小生成树)
  11. 关于GridBagLayout的讲解哦
  12. 管理SQL Server数据库服务器的安全防范原则
  13. VS单元测试入门实践教程
  14. Scala:枚举类型的用法
  15. Git从入门到差不多会用
  16. AD域控Dsquery查询命令实列
  17. 巧用Openlayers4的Style
  18. sqlserver 判断字符串是否是数字
  19. SSH服务器拒绝了密码
  20. python测试开发django-45.xadmin添加小组件报错解决

热门文章

  1. .Net core-邮件发送(同步,异步)底层代码(欢迎留言讨论)
  2. [TimLinux] JavaScript 代码控制滚动条移动到顶部/底部
  3. AcWing 291.蒙德里安的梦想
  4. python爬虫学习---爬取微软必应翻译(中英互译)
  5. vue中$attrs和$listeners以及inheritAttrs的用法
  6. 【原创】005 | 搭上SpringBoot请求处理源码分析专车
  7. 1. 初探--prometheus调研
  8. ASP.NET Core开发者指南()
  9. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 D 80 Days (线段树查询最小值)
  10. 在.NET Core控制台中使用依赖注入