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