cde*_*zaq 2 methods groovy named-parameters default-parameters
groovy 中的构造函数允许使用命名参数,方法参数允许使用默认值,但我似乎无法获得具有默认参数值的方法与命名参数一起使用。
理想情况下,我想要这样的东西:
def myMethod(def greeting = "Hello", def person = "World", def inflection = "!") {
"${greeting} ${person}${inflection}"
}
assert myMethod() == "Hello World!"
assert myMethod(greeting: "Hi") == "Hi World!"
assert myMethod(inflection: "?", person: "bob") == "Hello Bob?"
assert myMethod("Sup") == "Sup World!"
assert myMethod("Word", "Dawg") == "Word Dawg!"
Run Code Online (Sandbox Code Playgroud)
这是我能得到的最接近的结果,但它非常丑陋,感觉不是很“常规”,并且在所有情况下都不能完全工作:
def myMethod(Map vars = [:]){
vars.greeting = vars.greeting ?: "Hello"
vars.person = vars.person ?: "World"
vars.inflection = vars.inflection ?: "!"
"${vars.greeting} ${vars.person}${vars.inflection}"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1718 次 |
最近记录: |