Что означает «делать | |»в рубине? - PullRequest
13 голосов
/ 29 января 2011

При чтении кода на Ruby я увидел следующее:

create_table :talks do |t|

Что это за обозначение |variable|?Что это делает?

А также, где я могу найти помощь по таким конкретным предметам, как | |, #{} и т. Д.?

Ответы [ 2 ]

12 голосов
/ 29 января 2011

Это способ определения аргументов для блока, аналогично def methodname(arg1, arg2)

Хорошее объяснение блоков доступно от Роберта Сосинского

8 голосов
/ 29 января 2011

Вы также можете услышать, что их называют воротами. По сути, они являются именованными аргументами, которые можно перебрать, чтобы представить данные в коллекции. Например, с массивом:

# Print 1 2 3 4
[1,2,3,4].each do |e|
    print "#{e} "
end

Или с ключом, картой значений, у вас будет несколько аргументов между сообщениями цели

m = {"ruby" => "rails", "groovy" => "grails", "scala" => "lift", "java" => "spring"}
m.each do |lang, framework|
    # print the keys first - "ruby groovy scala java"
    print "#{lang} "
    # print the values second - "rails grails lift spring" 
    print "#{framework} "
end

Ваш вопрос звучит более конкретно для языка Ruby, чем Ruby on Rails. Я хотел бы проверить некоторые из этих ссылок:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...