私の背景はPHPとC#ですが、私は本当にRoRを学びたいと思います。その目的のために、私は公式の文書を読み始めました。いくつかのコード例についていくつか質問があります。 単純なRubyの質問 - イテレータ、ブロック、シンボル
最初
はイテレータである:私はyield
が意味することを理解
class Array
def inject(n)
each { |value| n = yield(n, value) }
n
end
def sum
inject(0) { |n, value| n + value }
end
def product
inject(1) { |n, value| n * value }
end
end
「ここに関連したブロックを実行します。」私を投げているのはeach
の|value| n =
です。
public int sum(int n, int value)
{
return Inject((n, value) => n + value);
}
しかし、最初の例では、私に混乱している:彼らはC#スタイルのラムダを模倣するように見えるように、他のブロックは私に多くの意味をなします。
もう1つは記号です。いつ私はそれらを使いたいですか?そして、なぜ私が何か行うことはできません。inject
の定義について
class Example
attr_reader @member
# more code
end