短くできることに慣れています
some_array.map { |e| e.to_s }
に
some_array.map(&:to_s)
短縮する方法はありますか
some_array_of_arrays.map { |e| e[4] }
に似ている
some_array_of_arrays.map(&:[4])
明らかに、私はその最後の例を試しましたが、機能しません。理想的には、ソリューションは、のような他の「奇妙な形式の」メソッド呼び出しに一般化されます[]
。
Rails / ActiveSupportソリューションには興味がありません。ある種の解決策があると仮定して、単純なRubyのみ。
あなたはProcを使うことができます:
> a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14]]
> third_elem = Proc.new {|x| x[2]}
> a.map(&third_elem)
#> [3, 7, 11, nil]
または
> a.map &->(s) {s[2]}
#=> [3, 7, 11, nil]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加