0

私はプロジェクトオイラーの問題を解決することでルビーを学んでいますが、問題の1つの解決策として、次のようなことができることがわかりました"12341".chars.inject(1) { |prod, n| prod * n.to_i }

Rubyのドキュメントを見ましたが、どこString#charsが定義されているのかわかりません。

誰かがそれがどのように機能するか説明できますか?

4

3 に答える 3

2

これは、 http: //ruby-doc.org/core/を見ると得られる1.8.6には存在しませんが、1.8.7および1.9のドキュメントには存在します。

String#chars文字列の各文字を順番に生成する列挙子( Enumerableインターフェイスを提供するクラス)を返すだけです。injectこれにより、Enumerable内の各アイテムを反復処理し、そのアイテムにブロックを適用し、結果を収集する値を呼び出すことができます。この場合、値から始めて、1各反復で値に各文字の整数値を掛けます。

于 2010-09-10T20:30:04.933 に答える
1

ここに文書化されています。

于 2010-09-10T20:23:31.213 に答える
0

RailsのActiveSupportも元々monkeypatchedでしString#charsた。彼らは答えにRailsまたはActiveSupportを使用していましたか?

于 2010-09-12T23:35:12.403 に答える