let 一般有如下2种使用场景
场景一: 在同一个作用域下操作变量。(使代码更加优雅)
首先先看 let的java翻译。
//kotlin
val result = "testLet".let {
println(it.length)
1000
}
println(result)
//java
String var2 = "testLet";
int var4 = var2.length();
System.out.println(var4);
int result = 1000;
System.out.println(result);
之后来看一下let实际使用
button2.text = "按钮2号"
button2.background = mContext.getDrawable(R.drawable.abc_list_selector_holo_dark)
button2.setOnClickListener {
}
//更优雅的写法
button2.let {
it.text = "按钮2号"
it.background = mContext.getDrawable(R.drawable.abc_list_selector_holo_dark)
it.setOnClickListener {
}
}
场景二: 使用let做判null操作。
//部分代码如果是靠quick fix 则会变成下面的写法
private var test: String? = null
fun test() {
if (test!= null) {
doTest(test!!)
}
}
//优化写法
private var test: String? = null
fun test() {
test?.let { doTest(it) }
}