0

私はレールに慣れてきており、進歩していると感じていますが、把握するのに苦労していることが1つあります。それは非常に基本的なことです。と のさまざまな使用法を理解しようとしています。それらの使用法の良い情報源は[] {}あり() ますか?また、初心者がどちらをいつ使用するかを認識する際に役立つヒントはありますか?は全く必要ありませんか?
これが非常に基本的なことであることは知っていますが、それらとRubyまたは特にRoRとの相互作用を簡潔に説明している文献を見つけるのに苦労しました

4

2 に答える 2

4

RoR とは何の関係もありません。さまざまな括弧は Ruby 言語の構成要素です。

[]配列およびそれを実装する他のクラス用の配列演算子です (部分文字列を取得するための範囲を取る文字列、またはキーの値を検索するためのハッシュなど):

a = [1, 2, 3]
a.each { |n| puts n }

s = "ohai"
puts s[1..-1]

h = { foo: "bar", baz: "plugh" }
puts h[:foo]

{}はハッシュ用であり、ブロックを区切る2つの方法のうちの1つです(もう1つはbegin/endです)。(そして#、文字列の補間に使用されます。)

h = { foo: "bar", baz: "plugh" }
h.each { |k, v| puts "#{k} == #{v}" }

()メソッドのパラメーター用、または式の評価順序を強制するためのものです。

 > puts 5 * 3 + 5     # Normal precedence has * ahead of +
=> 20
 > puts 5 * (3 + 5)   # Force 3+5 to be evaluated first
=> 40

def foo(s)
  puts(s)
end

ステートメントにあいまいさがなければ、それらはオプションになることがあります。

def foo s
  puts s
end

(それらは常にオプションであるとは限りません。また、メソッド呼び出しとその括弧で囲まれたパラメーター リストの間にスペースを入れると、問題が発生する可能性があります。IMO を避けるのが最善です。)

(私もおそらく何かを見逃しましたが、一言で言えばそこにあります。)

于 2012-05-12T17:52:31.903 に答える
1

[] は、ハッシュ内 (キー経由) または配列内 (インデックス経由) のオブジェクトにアクセスするために使用されます。

hash[:key] # returns a value
array[0]   # returns the first array element

[] は、配列を記述するために使用されます。

array = ['a', 'b', 'c']

もちろん、これはネストできます。

nested = [['a','b','c'], [1,2,3]]

[] を使用してハッシュを宣言できますが、それは Hash クラスが配列を受け入れることができるためです。

hash = Hash[['a',1], ['b',2]] # { 'a' => 1, 'b', => 2 }

{} は、ハッシュの宣言に使用されます。

hash = { 'a' => 1, 'b' => 2 }

これもネストできます。

hash = { 'a' => { 'c' => 3 }, 'b' => { 'd' => 4 } }

{} は、ブロックを区切るためにも使用されます。.each方法は一般的な方法です。次の 2 つのコード ブロックは同等です。

array.each do |n|
    puts n
end

array.each { |n| puts n }

() は、あいまいさを明確にする必要がある場合のグループ化にのみ使用されます。これは、多くの引数を取るメソッドで特に当てはまります。そのうちのいくつかは nil かもしれませんし、いくつかはオブジェクトかもしれません。わかりやすくするためにグループ化する必要がないので、それらを完全に省略した多くのコードが表示されます。

puts(string)
puts string

rails consoleを起動して、変数の宣言とアクセスを開始することをお勧めします。

于 2012-05-12T18:01:28.717 に答える