如何将数组作为参数列表传递

时间:2013-04-28 02:36:11

标签: ruby splat

Ruby的documentation将方法签名显示为:

start_with?([prefixes]+) → true or false

对我来说看起来像一个数组,但事实并非如此。您可以传递单个字符串或各种字符串作为参数,如下所示:

"hello".start_with?("heaven", "hell")     #=> true

如何将数组作为参数列表传递?以下不起作用:

"hello".start_with?(["heaven", "hell"])

1 个答案:

答案 0 :(得分:7)

括号是可选的文档约定,因此

中的括号
  

start_with?([prefixes]+) → true or false

只是说您可以使用零或更多start_with?来呼叫prefixes。这是文档中的常见约定,您将看到jQuery文档,Backbone文档,MDN JavaScript文档以及几乎任何其他软件文档。

如果您有一组前缀要与start_with?一起使用,那么您可以将阵列展开以使其无法理解:

a = %w[heaven hell]
'hello'.start_with?(*a)           # true
a = %w[where is]
'pancakes house?'.start_with?(*a) # false