groovy return多个值
时间: 2023-08-05 10:07:32 浏览: 524
在 Groovy 中,可以使用元组(Tuple)来返回多个值。元组是一种有序的、不可变的、可以包含任意类型的对象集合。
下面是一个使用元组返回多个值的示例代码:
```groovy
def foo() {
def a = 1
def b = 2
def c = 3
return [a, b, c] as Tuple
}
def result = foo()
println "a = ${result[0]}, b = ${result[1]}, c = ${result[2]}"
```
在这个例子中,我们定义了一个名为 `foo()` 的函数,该函数返回三个变量 `a`、`b` 和 `c` 的值。我们将这三个值封装到一个元组中,并使用 `as Tuple` 将其转换为元组类型。在函数调用时,我们将返回的元组赋值给 `result` 变量,并使用 `[]` 操作符访问元组中的每个元素。
输出结果为:
```
a = 1, b = 2, c = 3
```
这表明,函数 `foo()` 成功地返回了三个变量的值,并且我们可以使用元组来一次性访问这些值。
相关问题
groovy闭包两个返回值举例
Groovy闭包可以返回多个值,可以通过使用元组(Tuple)或者Map对象来实现。下面是两个返回值的示例:
1. 使用元组(Tuple)返回两个值
```groovy
def myClosure = { a, b -> return [a + b, a - b] }
def result = myClosure(5, 3)
assert result instanceof Tuple
assert result.size() == 2
assert result[0] == 8
assert result[1] == 2
```
2. 使用Map对象返回两个值
```groovy
def myClosure = { a, b -> return [sum: a + b, diff: a - b] }
def result = myClosure(5, 3)
assert result instanceof Map
assert result.size() == 2
assert result.sum == 8
assert result.diff == 2
```
groovy中-> 用法
在 Groovy 中,`->` 通常用于定义闭包(Closure)。闭包是一种可以在代码中传递的代码块,它可以被赋值给变量、作为参数传递给函数或方法,甚至可以被返回。
下面是一个使用 `->` 定义闭包的示例:
```
def numbers = [1, 2, 3, 4, 5]
def evenNumbers = numbers.findAll { it % 2 == 0 } // 使用闭包过滤偶数
```
在上面的代码中,`{ it % 2 == 0 }` 就是一个闭包,它的作用是判断传入的参数是否为偶数。`->` 前面的 `it` 代表闭包的参数,因为该闭包只有一个参数,所以可以使用 `it` 简写,如果有多个参数,则需要使用括号括起来,例如 `{ a, b -> a + b }`。
在闭包中,可以使用 Groovy 的语法糖,例如可以省略 `return` 关键字,例如 `{ a, b -> a + b }` 等价于 `{ a, b -> return a + b }`。此外,还可以使用命名参数、默认参数值等高级特性。
阅读全文