Kotlin 和 Java 都支持可变参数,但它们的语法和使用上有一些区别。
Kotlin:
使用 vararg
关键字定义可变参数。
fun example(vararg numbers: Int) {
// ...
}
Java:
使用三点 ...
语法定义可变参数。
public void example(int... numbers) {
// ...
}
Kotlin: 可以直接传入多个参数,也可以传递数组。
example(1, 2, 3) // 直接传入
example(*arrayOf(4, 5, 6)) // 使用解构操作符 *
Java: 同样可以直接传入多个参数或传递数组。
example(1, 2, 3); // 直接传入
example(new int[]{4, 5, 6}); // 传递数组
Kotlin: 可变参数在函数内部作为数组处理。
fun example(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
Java: 可变参数在函数内部也是作为数组处理,但没有 Kotlin 中的解构操作符。
public void example(int... numbers) {
for (int number : numbers) {
System.out.println(number);
}
}
Kotlin: 可变参数必须是参数列表的最后一个参数,且只能有一个。
Java: 同样要求可变参数是最后一个参数,且只能有一个。
尽管 Kotlin 和 Java 都支持可变参数,它们的语法和一些细节处理略有不同。Kotlin 的 vararg
提供了更直观的参数传递方式,尤其是结合解构操作符时,使用起来更加灵活。