您当前的位置:首页 > 计算机 > 编程开发 > Kotlin

Kotlin中的可变参数传递

时间:02-05来源:作者:点击数:

Kotlin中的可变参数传递

fun main() {
	a()
}

fun a(vararg args: Any) {
	println("a.size = ${args.size}")
	b(args)
}

fun b(vararg args: Any) {
	println("b.size = ${args.size}")
}

输出结果如下:

a.size = 0
b.size = 1

怎么args参数从函数a传到函数b时size就变了呢?因为我们调用函数a时,并没有传任何参数,所以函数a中的args肯定是空的,注意,它只是size为0,args对象并不为null,args其实是一个数组,对应Java的类型为:Object[],把此对象传给b函数时,是把Object[]当成一个元素传进去了,这个元素保存在b函数的args数组的args[0]位置,所以b函数的args的size为1,我们希望是把函数a中args数组里面的元素赋值给函数b,而不是把args整体当成一个元素赋值给函数b,实现如下:

fun a(vararg args: Any) {
	b(*args)
}

就是这么简单了,加了个星号而已。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门