我正在尝试将多个字符串作为参数传递给函数
功能:
noreturn
描述
向此网格添加一行列标题。 这应该在列上每个维度调用一次,并且每个维度的标题长度应匹配。
来自Groovy的示例调用,从2016财年和2017财年增加1月,2月,3月:
void addColumn(java.lang.String... headers)
所以如果我像上面的例子一样传递参数它工作正常..我无法弄清楚在groovy中动态传递它的方法吗?
答案 0 :(得分:3)
在这种情况下,您始终可以传递一个字符串数组。你的方法
void addColumn(java.lang.String... headers)
使用varargs,这意味着您可以按原样调用此方法
void addColumn(java.lang.String[] headers)
Varargs在某些情况下很有用,因为它接受单个参数以及具有相同类型的n个参数。
如果要在Groovy中调用此方法,可以通过将列表强制转换为String[]
来实现,例如
def addColumn(String... args) {
args.each { println "Adding column ${it}..."}
}
println 'Ex 1:'
addColumn('Jan', 'Feb', 'Mar', 'Apr')
println 'Ex 2:'
addColumn(['Jan', 'Feb', 'Mar', 'Apr'] as String[])
运行此脚本将打印到输出:
Ex 1:
Adding column Jan...
Adding column Feb...
Adding column Mar...
Adding column Apr...
Ex 2:
Adding column Jan...
Adding column Feb...
Adding column Mar...
Adding column Apr...
我希望它有所帮助。
答案 1 :(得分:2)
您可以使用splat运算符:
CKFetchNotificationChangesOperation
在这种情况下会将集合展开为varags。