gpt4 book ai didi

Ruby:仅当非空时才将选项传递给方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:25 25 4
gpt4 key购买 nike

我得到了一个散列 self.options(可能为空)和一个方法名称。现在我需要调用该方法,传入选项散列,如下所示:

obj.send(method_name, ...args..., self.options)

但我想支持根本不需要选项散列的调用方法。因此,如果没有给出任何选项 (self.options.empty?),我希望将空散列传递到方法中。我能想到的最好的是:

obj.send(method_name, ...args..., *(self.options.empty? ? [] : [self.options]))

有更好的成语吗?

最佳答案

如果选项为空,则不需要 []。 *nil 返回该位置的空值。

这行得通吗?

obj.send(method_name, ...args..., *([self.options] unless self.options.empty?))

顺便说一句,你可以省略self,所以你可以有

obj.send(method_name, ...args..., *([options] unless options.empty?))

关于Ruby:仅当非空时才将选项传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5262436/

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