您当前的位置: 首页 >  kotlin

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Kotlin最佳实践

蓝不蓝编程 发布时间:2019-02-18 16:28:37 ,浏览量:0

  1. 字符串连接 推荐方式: val fullName = "${user.firstName} ${user.lastName}" 不推荐方式: val fullName = user.firstName + " " + user.lastName
  2. list获取元素方式 推荐方式:
val array = ArrayList()
array[0]

不推荐方式:

val array = ArrayList()
array.get(0)
  1. 循环方式,推荐forEach 推荐方式:
(0..9).forEach {
// todo somethings
}

不推荐方式:

for (i in 0..9) {
  // todo somethings
}
  1. 变量可视性修饰符 默认修饰符是public,如果没有其他需要可以省略。 推荐方式: val wideOpenProperty = 1 不推荐方式: public val wideOpenProperty = 1
  2. 对于简单的数据结构,推荐使用data类 推荐方式: data class Person(val name: String) 不推荐方式:
class Person(val name: String) {
  override fun toString() : String {
    return "Person(name=$name)"
  }
}
  1. 使用when表达式 推荐方式:
fun getDefaultSex(name:String):User{
    if(name=="mike"||name=="jack"){
         return male; 
    }
    if(name="marry"||name="jane"){
         return female
    }
    return male
}

不推荐方式:

fun getDefaultSex(name:String)=when(name){
    "mike","jack"->male
     "marry","jane"->female
      else->male
}
  1. 扩展函数 推荐方式:
fun Int.countNum():Int{
        return plus(2)
  }

调用样例:3.countNum() 8. 使用apply简化对象调用 推荐方式:

val user=User().apply{
    name="android coder"
    age=25
    sex="male"
    isDream=true  
}

不推荐方式:

val user=User()
user.Name="android code"
user.age=25
user.sex=male
user.isDream=true

扩展函数apply()可以对对象的初始化代码进行分组和集中。这样,我们就不必一遍一遍的重复变量名称了。 9. 优先使用默认参数 推荐方式:

fun user(name:String,isDream:Boolean=true){
}

不推荐方式:

fun user(name:String){
    user(name,true)
}
fun user(name:String,isDream:Boolean){
}
  1. 关注函数定义及调用时入参是否允许为空 kotlin函数参数默认不允许为空 推荐方式: 如果函数允许为空,声明时类型后面要增加问号。 对于参数不能为空的函数,在调用前,需要确保参数不为空,否则会导致空指针异常。(点击查看详情)
附录:

使用Kotlin反而导致空指针异常的坑

安卓开发技术分享: https://blog.csdn.net/yinxing2008/article/details/84555061

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0386s