みんなのちからになりたい

コピペでブログラムつくっていきたい

rubyで連番の配列作ろうとして気づいたアホな思いこみ

連番が入った配列を作ろうと思って普通に
[1..10]
とかやったけどぜんぜんできなくてなにが起きたのかと思ったら、単純にこれで作れると勝手に思いこんでただけでそんなんでできないって話だった。
[1..10]でできるのは1..10というRangeが入った要素が1つある配列ができるだけで、連番から配列を作りたかったらRangeからto_aして配列作るか、Array関数にRange渡して作るかのどっちかだった。

$ irb
irb(main):001:0> x = 10
=> 10
irb(main):002:0> [1..x]
=> [1..10]
irb(main):003:0> [1..x].to_a
=> [1..10]
irb(main):004:0> a = [1..x]
=> [1..10]
irb(main):005:0> a[0]
=> 1..10
irb(main):006:0> a[0].class
=> Range
irb(main):011:0> Array(1..x)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
irb(main):012:0> (1..x).class
=> Range
irb(main):013:0> (1..x).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

よく理解してないのに思いこみやばい。

勉強になる。