2013-04-28 5 views
1

рубин documentation отображает сигнатуру методов, как:Как передать массив в качестве списка аргументов

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

, который выглядит как массив для меня, но это не так. Вы можете передать одну строку или различные строки в качестве аргументов, например, так:

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

Как передать массив в виде списка аргументов? Ниже не работает:

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

ответ

7

Скобки являются документация конвенции для опциональной так скобки в

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

просто говорят, что вы можете назвать с нуля или более prefixes. Это общая конвенция в документации, вы увидите документацию jQuery, документацию Backbone, документацию MDN JavaScript и почти любую другую документацию по программному обеспечению.

Если у вас есть массив префиксов, которые вы хотите использовать с , то вы можете восклицательный знак в массив unarrayify его таким образом:

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

+1 Отлично, спасибо, никогда не слышал о восклицательный знак. Довольно новый для рубина, спасибо! – andy