は、私は今、その現在の作品やっているものですが、私は少し糖衣構文に欠けていると感じ...ここinjectメソッドのブロックに渡される配列要素のブロックパラメータを個別に宣言できますか?ここ
f = RGeo::Geos.factory
coords = [ [1,1], [2,2], [1,3] ]
points = coords.inject([]) {|points, coord| points << f.point(coord[0], coord[1]); points }
#=> [#<RGeo::Geos::CAPIPointImpl:0x3fff0950a508 "POINT (1.0 1.0)">, #<RGeo::Geos::CAPIPointImpl:0x3fff0950a47c "POINT (2.0 2.0)">, #<RGeo::Geos::CAPIPointImpl:0x3fff0950a454 "POINT (1.0 3.0)">]
は私がやりたいものです。
points = coords.inject([]) {|points, x, y| points << f.point(x,y); points }
#=> [nil, nil, nil]
今は3つのnil値の配列を返しています。各メソッドで可能なように、注入ブロックに渡される要素の配列値を別々に宣言することは可能ですか?
サイドノート: 最初のインジェクションブロックパラメータ(「結果」変数)には同じ変数名を使用し、等号の左側には変数を使用するのが安全ですか?私は、これがちょうど再帰の典型的なケースになるので、はいと考えています。あなたが他に感じているか分かっていればコメントしてください。これは、トリックを行います
'inject'、それが見える理由:
はまた、それらの外側の括弧は、厳密には、上記の例では必要ありませんが、一つだけの引数が配列から取られているとき、彼らは行動を変えることに注意してください'map'のようにしますか? –
あなたが正しいと思います。私はそれを確かに考えた。 –