繁体   English   中英

Ruby 需要的关键字参数

[英]Ruby required keyword arguments

对于 Ruby 方法,所需的关键字语法很好

def foo(bar:, baz:)
  :
end

foo(bar: true, baz: false) # OK
foo(bar: true) # missing keyword argument error

可以用某种魔法“splat”所需关键字的列表吗? 即,

required_keywords = [:bar, :baz]
def foo(magic(required_keywords))
  :
end

我预计不会,但我经常对 Ruby 可以被说服做的事情感到惊讶。

splat (*) 和double spla t (**) 运算符允许方法采用任意数量的参数。 前者将参数存储在一个数组中,后者将它们存储在一个散列中。

还有选项 hash ,它是一个可选的散列参数,通常作为方法声明的最后一个参数包含在内。 它还可以接受任意数量的参数(实际上,它们是普通的散列项)。

但是,在上述两种情况下,声明方法时参数的数量是未知的。 因此,您不能将未知数量的参数设为“必需”。

有关 splat、double splat 和所需关键字参数的更多信息,请参阅此博客文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM