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) }
}

 

转载于:https://my.oschina.net/ldhy/blog/3007028

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐