Groovy - 可变参数
Groovy 支持可变参数,通常称为 varargs。在方法中使用可变参数,我们可以创建一个能够接受任意数量特定类型参数的方法。这是一个非常有用的特性,当我们事先不知道参数数量时特别适用。
语法
def myMethod(String... names) {
// 方法实现
}
其中 −
String... 表示类型为 String 的可变参数。
当可变参数传递给方法时,该参数被视为特定类型的数组。我们可以迭代该数组、使用索引访问其元素,或进行其他数组操作。
示例 - 可变参数
Groovy 提供 it 关键字来表示闭包的唯一参数。在这个参数中,我们使用它来打印传递给方法的所有值。
Example.groovy
// 一个带有可变参数的方法
def greet(String... names) {
names.each { println "Hello, $it!" }
}
// 使用三个参数调用 greet 方法
greet("Julie", "Charlie", "Adam")
// 使用一个参数调用 greet 方法
greet("David")
// 不带任何参数调用 greet 方法
greet()
输出
运行上述程序时,我们将得到以下结果。
Hello, Julie! Hello, Charlie! Hello, Adam! Hello, David!
如果没有向可变参数传递值,它将结果为空数组。否则,值将被收集到 String[] 中。
关键注意事项
仅一个 Varargs − 我们只能向方法传递一个可变参数,且它必须是方法的最后一个参数。
类型安全 − 我们必须为可变参数指定特定类型,从而确保可变参数是类型安全的。
可选参数 − 我们可以不传递可变参数,因为它将结果为空数组。
示例 - 与其他参数混合使用
Example.groovy
// 带有混合参数的方法
def greet(String greeting, String... names) {
names.each { println "$greeting, $it!" }
}
greet("Hi", "Adam", "Frank")
输出
运行上述程序时,我们将得到以下结果。
Hi, Adam! Hi, Frank!
可变参数的优势
灵活性 − 我们可以调用带有多个可变参数的方法,而无需创建重载方法。
简洁性 − 使用可变参数,使代码更简洁,尤其是在需要向方法传递可变数量的值时。
可读性 − 可变参数通过自然地传递项列表,使代码更易读。