kotlin – 是否可以在函数参数中使用解构?

Kotlin支持解构声明:

val (a, b) = Pair(1,2)

这类似于Python的可迭代解包:

a, b = (1, 2)

Python还有一个splat / spread运算符,允许您使用函数参数执行类似的操作:

def f(a, b): pass
pair = (1,2)
f(*pair)

kotlin有相似的能力吗?显然,您可以手动解压缩结构:

f(pair.component1(), pair.component2())

但那很笨重.有没有办法更优雅地做到这一点?我在docs on the subject中看不到任何东西.

不,这仅适用于数组和vararg函数

val foo = arrayOf(1, 2, 3)
val bar = arrayOf(0, *foo, 4)
翻译自:https://stackoverflow.com/questions/35901164/is-it-possible-to-use-destructuring-in-function-arguments

转载注明原文:kotlin – 是否可以在函数参数中使用解构?