Groovy 可变参数怎么用?

文章导读
Previous Quiz Next Groovy 支持可变参数,通常称为 varargs。在方法中使用可变参数,我们可以创建一个能够接受任意数量特定类型参数的方法。这是一个非常有用的特性,当我们事先不知道参数数量时特别适用。
📋 目录
  1. 语法
  2. 示例 - 可变参数
  3. 关键注意事项
  4. 示例 - 与其他参数混合使用
  5. 可变参数的优势
A A

Groovy - 可变参数



Previous
Quiz
Next

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!

可变参数的优势

  • 灵活性 − 我们可以调用带有多个可变参数的方法,而无需创建重载方法。

  • 简洁性 − 使用可变参数,使代码更简洁,尤其是在需要向方法传递可变数量的值时。

  • 可读性 − 可变参数通过自然地传递项列表,使代码更易读。