gpt4 book ai didi

ruby - 何时使用关键字参数和选项哈希?

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

我看到很多人在他们的 Ruby 代码中使用关键字参数。我还看到很多人使用选项哈希。什么时候应该使用关键字参数,什么时候应该使用选项散列?这真的让我很困惑。据我所知,在许多情况下,关键字参数比选项散列要好得多。例如:

class Foo
def initialize(kwarg1: nil, kwarg2: nil)
@var1 = kwarg1 if kwarg1
@var2 = kwarg2 if kwarg2
end
end

看起来更清晰
class Foo
def initialize(options = {})
@var1 = options[:var1] if options[:var1]
@var2 = options[:var2] if options[:var2]
end
end

最佳答案

The Ruby Style Guide中有一条规则为此:

Use keyword arguments instead of option hashes.

# bad
def some_method(options = {})
bar = options.fetch(:bar, false)
puts bar
end

# good
def some_method(bar: false)
puts bar
end

这是一个事实上的编码标准,如果您遵循它,您的客户在审查您的代码时将永远不会遇到问题。

这条规则只有一个异常(exception):如果您的方法需要真的大量不同的很少使用的选项,而且很难在参数列表中列出,只有这样 strong> 值得使用选项散列。但如果可能,应该避免这种情况。

关于ruby - 何时使用关键字参数和选项哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54375144/

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