2011-01-29 90 views
6

在閱讀一些Ruby代碼,我看到這一點:「do | |」是什麼意思?在Ruby中?

create_table :talks do |t| 

這是什麼符號|variable|?這是做什麼的?

此外,我在哪裏可以找到有關這些特定主題(如| |,#{}等)的幫助?

+0

想知道關於Ruby塊語法的許多問題中的哪一個可能最好被認爲是重複的,我只是建議使用這個搜索詞:http://stackoverflow.com/search?q=%5Bruby% 5D +塊 – Phrogz 2011-01-29 17:28:05

+0

「我在哪裏可以找到這些特定主題的幫助......」。這些都是非常基本的,核心到Ruby的東西,所以至少要閱讀[「Programming Ruby」的在線版本](http://www.ruby-doc.org/docs/ProgrammingRuby/)。這有點過時,但這些基本知識仍然適用。 – 2011-01-29 22:02:52

回答

7

它定義爲參數塊,以類似的方式來def methodname(arg1, arg2)

塊的一個很好的解釋的方式可以用Robert Sosinski's blog

+8

該博客鏈接提供了404,但似乎有同一篇文章的副本(至少它是相同的作者和日期)在這裏:http://www.reactive.io/tips/2008/12/21/understanding -ruby-blocks-procs-and-lambdas – moncheery 2016-07-28 13:43:10

4

你也可以聽到他們被稱爲門柱。它們本質上是命名參數,可以迭代以顯示集合中的數據。例如,對於一個數組:

# 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之間的多個參數軌。我想看看一些這些鏈接:

0

我一直在尋找的東西叫這個,因爲我是新來的Ruby答案。我發現你的帖子非常有幫助,並且upvoted rynmrtn的答案,但我沒有「privledged」足以投票或評論呢。

我想也許這個鏈接(不要打擾視頻這是一個付費網站)也是有幫助的,有視頻下面的文字。

https://teamtreehouse.com/library/iteration-with-each

而且這是一個相關的概念,可以幫助過,而你是越來越多的紅寶石的知識!

How to understand Ruby's .each and .map

我想這可能會幫助誰後,來到這裏的人。