Kotlin标准函数

标准函数指的是在任何地方任意对象都能调用的几个函数,定义在Standard.kt文件中,这里对几个常用的标准函数进行介绍。

let

let函数接收一个Lambda表达式作为参数,无返回值,作用为给调用对象执行所给的Lambda代码,示例如下:

// 不使用let写法:
student?.study()
student?.sing()
student?.eat()

// 使用let写法:
student?.let {
	study()
	sing()
	eat()
}

apply

apply函数接收一个Lambda表达式作为参数,无返回值,或者说返回值为自己本身,其作用为对调用对象执行修改,类似于Builder对象等,示例代码如下:

// 不使用apply写法
val intent = Intent(mContext, Second::class.java)
intent.putExtra("key1", "value1")
intent.putExtra("key2", "value2")
intent.putExtra("key3", "value3")

// 使用apply写法
val intent = Intent(mContext, Second::class.java)
intent.apply {
	putExtra("key1", "value1")
	putExtra("key2", "value2")
	putExtra("key3", "value3")
}

run

run函数接收一个Lambda表达式作为参数,返回值为Lambda表达式最后一行,作用为对调用对象数据执行操作后返回操作后的数据,着重点在于获取调用对象的数据,而对调用对象不关心。示例代码如下

// 不使用run
val list = listOf("tom", "jack", "tim")
val sb = StringBuilder()
for (l in list) {
	sb.append(l)
}
return sb.toString()

// 使用run
val list = listOf("tom", "jack", "tim")
StringBuilder().run {
	for (l in list) {
		// 操作对象为调用者StringBuilder()
		append(l)
	}
	// 这行(最后一行)将作为返回值返回
	toString()
}

with

与上面几个函数不同,with函数不需要调用者,它接收2个参数:要获取数据的对象、Lambda表达式,with函数和run函数非常相似,区别在于with把run中的调用对象当成参数传入了。

// 不使用with
val list = listOf("tom", "jack", "tim")
val sb = StringBuilder()
for (l in list) {
	sb.append(l)
}
return sb.toString()

// 使用with
// 这里利用了Lambda特性把Lambda表达式写在了括号外面
with(StringBuilder()) {
	for (l in list) {
		// 操作对象为第一个参数StringBuilder()
		append(l)
	}
	// 这行(最后一行)将作为返回值返回
	toString()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值