gpt4 book ai didi

methods - 我怎样才能拥有一个可以在 Groovy 中按名称覆盖的默认参数方法?

转载 作者:行者123 更新时间:2023-12-02 07:29:12 25 4
gpt4 key购买 nike

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!"

这是我能得到的最接近的结果,但它非常难看,感觉不是很“时髦”,而且并非在所有情况下都能完全发挥作用:

def myMethod(Map vars = [:]){

vars.greeting = vars.greeting ?: "Hello"
vars.person = vars.person ?: "World"
vars.inflection = vars.inflection ?: "!"

"${vars.greeting} ${vars.person}${vars.inflection}"
}

最佳答案

Groovy 没有真正的命名参数,它不会比您的上一个片段更好。

关于methods - 我怎样才能拥有一个可以在 Groovy 中按名称覆盖的默认参数方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com