gpt4 book ai didi

ruby - 如果传递的是定位参数,如何设置关键字参数

转载 作者:行者123 更新时间:2023-12-02 08:00:06 24 4
gpt4 key购买 nike

出于向后兼容的原因,是否有一种方法可以定义 my 方法,以便以下两个调用相同?

my(1, A)
my(1, before: A)

其中 before 是关键字参数。

我现在有

def my(n, klass)
puts "#{n} and #{klass}"
end

现在我需要能够调用 my(1, before: A) 并获得相同的结果(即“1 和 A”)

my 方法也可以使用第二个关键字参数调用,即 my(1, before: A, after: B)

def my(n, before, after: nil)
puts "#{n} and #{before} but not #{after}"
end

最佳答案

下面是 MCVE 和使用示例。

def my(after = nil, **args)
after ||= args[:after]
before = args[:before]
puts "after = “#{after}” | before = “#{before}“"
end

my "A"
#⇒ after = “A” | before = ““
my after: "A"
#⇒ after = “A” | before = ““
my before: "B"
#⇒ after = “” | before = “B“

关于ruby - 如果传递的是定位参数,如何设置关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58536774/

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