2011-01-29 7 views
6

私はこれを見たいくつかのRubyコードを読んでいる間:"do | |"の意味は何ですか? Rubyで?

create_table :talks do |t| 

この表記|variable|は何を?それは何ですか?

また、| |,#{}などの特定のテーマについては、どこでヘルプを見つけることができますか?

+0

それは私がだけではなく、この検索用語を提案します、最高の重複と見なされるかもしれないRubyのブロック構文について多くの質問のどれを把握するのは難しいです。http://stackoverflow.com/search?q=%5Bruby% 5D +ブロック – Phrogz

+0

「これらの特定の科目のヘルプはどこにありますか...」これらは非常に基本的なもの、コア・ツー・ルビー物事はそう、最低でも、[「プログラミングルビー」](http://www.ruby-doc.org/docs/ProgrammingRuby/)のオンライン版をお読みください。ちょっと古いですが、それらの基本はまだ適用されます。 –

答えて

7

それは、ブロックの引数を定義する方法です、def methodname(arg1, arg2)

と同様に、ブロックの素敵な説明は、あなたはまた、彼らはゴールポストと呼ば聞くことがありRobert Sosinski's blog

+8

そのブログのリンクは404を与えるが、同じ記事のコピーがあるように思われる(ここで、少なくともそれは同じ著者と日付です):http://www.reactive.io/tips/2008/12/21/understanding 1. – moncheery

4

で提供されています。それらは基本的に名前付き引数であり、コレクション内のデータを公開するために反復処理を行うことができます。例えば、配列で:あなたの質問はルビーよりも、Ruby言語へのより具体的な鳴り

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 

ゴールポストの間

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

やキー、値マップを使用すると、複数の引数を持っているでしょうRails。

+0

ブロック-procsの-と-ラムダ--ruby誰が「ゴールポスト」それらを呼び出します。 2.彼らは議論の名前ではありません。3.あなたはそれらを反復していません。 – horseyguy

+0

1.議論の余地があります。 2.単語の上で髪を分割する。 Rubyのドキュメントでは、それらを名前付き引数ではなくパラメータとして参照しています。 3.おそらく「反復」は100%正確ではないが、前提は同じま​​まである - コードブロックはコレクション内の各要素に対して呼び出される。 – rynmrtn

0

私はルビーに新たなんだとしてこれを呼び出すかの答えを探していた:私はこれらのリンクのいくつかをチェックアウトします。私はあなたのスレッドが非常に役に立った、とrynmrtnの答えをupvotedが、私はまだ十分に投票やコメントに「privledged」ではありませんよ。

私は多分このリンクは(それが有料サイトのビデオを気にしないでください)映像の下にテキストがある、また有用だと思いました。

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

また、これはあなたがルビーのあなたの知識を拡大している一方で、あまりにも役立つことに関連する概念です!

How to understand Ruby's .each and .map

私は、これらは後にここに来た人を助けるかもしれないと思いました。