2

例えば

func(@param) do |f|
    some code here
end

@param.each do |sth|
    some code here
end

ここで絶対値の符号は何をしますか?私はこれらの2つのコードを理解していません。

4

4 に答える 4

4

これはブロック内のローカル変数なので、次の行の場合:

@param.each do |sth|

あなたは@param右を繰り返しています、まあの各アイテム@paramは単独でと呼ばれsthます。

したがって、if@paramが数値を含む配列を参照している場合

[1,3,5,4]

最初の反復でsth1、次に3、次に5、次にになり4ます。

同じことが当てはまります:

func(@param) do |f|

ただし、ローカル変数はf!と呼ばれます。あなたはそれをあなたが望むものなら何でも呼ぶことができます|ihavenoideawhatimdoing|

于 2013-02-28T01:11:35.293 に答える
3

doこれはローカル変数であり、 ...の間のコードのブロックに対してend、変数fが定義されていると言っています。

于 2013-02-28T01:08:31.180 に答える
2

ブロックのパラメータです。ブロックは、doとendの間のコードの一部です。そのコードブロックはfまたはを使用できますsth。これは、例ではfuncまたはによって設定されている可能性がありますeach

Rubyブロックに関するチュートリアルがおそらく役立つでしょう。

Labmda calculus-より抽象的なですが、それは私が最初にこれらのものを見た文脈でした。

于 2013-02-28T01:15:51.507 に答える
0

インスタンス変数を意味します。人々がattr_accessorのようなattr_*メソッドを使用している場合それが入れ替わっていることをよく目にします。これにより、@someattrself.some_attrがインスタンスメソッドで同等になります。

于 2013-02-28T01:12:02.447 に答える