- 字符串连接 推荐方式:
val fullName = "${user.firstName} ${user.lastName}"
不推荐方式:val fullName = user.firstName + " " + user.lastName
- list获取元素方式 推荐方式:
val array = ArrayList()
array[0]
不推荐方式:
val array = ArrayList()
array.get(0)
- 循环方式,推荐forEach 推荐方式:
(0..9).forEach {
// todo somethings
}
不推荐方式:
for (i in 0..9) {
// todo somethings
}
- 变量可视性修饰符 默认修饰符是public,如果没有其他需要可以省略。 推荐方式:
val wideOpenProperty = 1
不推荐方式:public val wideOpenProperty = 1
- 对于简单的数据结构,推荐使用data类 推荐方式:
data class Person(val name: String)
不推荐方式:
class Person(val name: String) {
override fun toString() : String {
return "Person(name=$name)"
}
}
- 使用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
}
- 扩展函数 推荐方式:
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){
}
- 关注函数定义及调用时入参是否允许为空 kotlin函数参数默认不允许为空 推荐方式: 如果函数允许为空,声明时类型后面要增加问号。 对于参数不能为空的函数,在调用前,需要确保参数不为空,否则会导致空指针异常。(点击查看详情)
使用Kotlin反而导致空指针异常的坑
安卓开发技术分享: https://blog.csdn.net/yinxing2008/article/details/84555061