28617


環境：Ruby2.0.0  
Windows8.1 home 32bit

Rubyで配列の要素すべてを整数に変換したいのですが、

[code]

    foo = ["1","2","3","4"]
    
[/code]

これをなるべく簡単に

[code]

    foo = [ 1 , 2 , 3 , 4 ]
    
[/code]

に置き換えるにはどのようにすればいいでしょうか？

[code]

    foo = ["1","2","3","4"]
    i = 0
    while i <= 3
        foo[i] = foo[i].to_i
    　  i += 1
    end
    
[/code]

個人的こう書いてますが、もっといい書き方があれば教えて下さい。


CC BY-SA 3.0
2016-08-27T06:25:13.490
28524
2016-09-01T03:11:52.357
2016-08-27T06:32:29.373
16877
16877
question
ruby array
Rubyで配列の要素すべてを整数に変換したい


速さまでは確認していませんが、こんな書き方ができます。

[code]

    foo.map!{|x| x.to_i}
    
[/code]


CC BY-SA 3.0
2016-08-27T06:30:36.767
28525
2016-08-27T06:30:36.767
13972
28524
answer


好き好きありますが、こういうのもあります。

[code]

    foo.map!(&:to_i)
    
[/code]

こうすると `{|hoge| hoge.to_i}` みたいにhogeを二回入力するのを省略できてよいです。

詳しくはここを参考にして下さい。  
<http://www.xmisao.com/2014/02/09/ruby-array-map-idiom-symbol-to-proc.html>


CC BY-SA 3.0
2016-09-01T03:11:52.357
28617
2016-09-01T03:11:52.357
8329
28524
answer