Kotlin的四大函数使用
2019-11-28 本文已影响0人
爱学习的蹭蹭
1、apply 函数
1、任意函数都有
apply
扩展apply
参数是一个函数
2、凡是kotln有T.()->Unit
带接收者的函数字面值
3、apply
函数返回值就是调用者本身
- 代码
fun main(args : Array<String>){
//调用
listApply()
}
fun listApply(){
var list :ArrayList<String>? = arrayListOf("林青霞","灵儿","喜来乐")
//list?.add("哈哈")
//list?.add("林少师")
// apply 函数
list?.apply {
add("哈哈")
add("林少师")
}?.add("董菲菲")
set{
this.name
}
}
/*
* T.() -> Unit
* lambda相当于定义在T里面的函数,访问对象里面的字段或方法
*/
fun set(block: Datax.() ->Unit){
//调用方式
//方法一
block(Datax())
//方法二
Datax().block()
}
class Datax(){
var name = "历史"
}
2、let 函数
1、 let函数,任意对象都有let函数扩展
2、let函数参数也是一个函数
3、函数参数它的参数是调用者它本身
4、let的表达式是函数参数的返回值,就是lambda表达式的值
//let 函数
fun listLet(){
var list :ArrayList<String>? = arrayListOf("林青霞","灵儿","喜来乐")
list?.let {
it.add("辽阔")
"第一个let"
}
println(list)
}
3、with函数
1、
with
是一个独立的函数,可以在任意地方调用
2、with
函数需要接收两个参数、第一个参数可以接收任意类型
第二个参数是函数参数,并且这个函数参数带接受者的函数字面值,接收者就是第一个参数
3、with
函数返回值是第二个函数参数的返回值
//with函数
fun fwith(){
var list :ArrayList<String> = arrayListOf("林青霞","灵儿","喜来乐")
with(list){
this.add("第一个with")
"第二个with"
}
}
4、run函数
任意类型都有这个run扩展函数
run函数参数是带接收者,接收者是调用者本身
run函数的返回值就是函数参数的返回值
//run函数
fun frun(){
var list :ArrayList<String> = arrayListOf("林青霞","灵儿","喜来乐")
list.run{
this.add("")
"第一个run"
}.length //因为最后一个是字符串,所以有length方法
}