Kotlin中的also函数的用法

258 阅读1分钟

let与also的区别就在于返回值的不一样,他们的参数都是it,可是let返回的是lamda表达式的结果。而also返回的是上下文

Book("《海边的卡夫卡》", "村上春树", 59)
  .let {
    println(it)
    it.adjust(-5)   
    it  			//由于adjust()方法没有返回值,咱们须要将调整价格后的Book对象做为lamda表达式的返回值返回
  }
  .let {
    print(it)
  }

Book("《海边的卡夫卡》", "村上春树", 59)
  .also {
    println(it)
    it.adjust(-5)			// 因为also直接返回当前对象,因此咱们不用再提供返回值
  }
  .let {
    print(it)
  }

参考:# Kotlin中的also、let、run、with、apply函数的用法