let:str.let{it}
1.let函数返回类型,是根据匿名函数最后一行的变化而变化。
2.let函数的 匿名函数里面持有的是it==调用本身
apply:str.apply{this}
1.apply函数返回类型,是调用本身类型
2.apply函数的 匿名函数里面持有的是this==调用本身
run:str.run{this}
1.run函数返回类型,是根据匿名函数最后一行的变化而变化
2.run函数的 匿名函数里面持有的是this==调用本身
with:with(str){this}
with函数和run函数基本上一模一样,就是调用方式不同,with不可以链式调用
also:str.also{it}
1.also函数返回类型,是调用本身类型
2.also函数的 匿名函数里面持有的是it==调用本身
takeIf:str.takeIf{flag}
1.如果flag==true,则返回str本身,否则返回null
takeUnless:str.takeUnless{flag}
1.如果flag==true,则返回null,否则返回str本身,与takeIf相反
总结:
1.内置函数返回类型是本身的:apply,also
2.内置函数返回类型为最后一行的:let,run,with
3.内置函数使用this的:apply,run,with
4.内置函数使用it的:let,also