Groovy将元组/ map扩展为参数

Que*_*ueg 10 groovy arguments parameter-passing

是否可以将地图扩展为方法参数列表

在Python中,它是可能的,例如. 将元组扩展为参数

我有def map = ['a':1, 'b':2] 一个方法def m(a,b)

我想写像smt一样 m(*map)

Art*_*ero 10

传播算子(*)被用来撕裂列表成单个元件.这可用于调用具有多个参数的方法,然后将列表分散到参数的值中.

列表(在Groovy名单与最接近相关的元组在Python 1,2):

list = [1, 2]
m(*list)
Run Code Online (Sandbox Code Playgroud)

地图:

map = [a: 1, b: 2]
paramsList = map.values().toList()
m(*paramsList)
Run Code Online (Sandbox Code Playgroud)

一个重点是你按位置传递参数.

  • 我了解地图的工作原理,但有些是有序的,有些是不排序的,有些是排序的,有些不是。例如:如果我有一个方法`def m(a,b)`和一个映射`def map = [b:1,a:2]`,那么方法调用-`m(1,2)`或`m(2,1)`或未定义... (2认同)