配列とは [ ]いらないのかもしれない

Rubyの配列の概念を疑うようなことがあったので備忘録

 

普通の配列の記述は

      array = [ "a", "b", "c" ]         

のように書きますよね。

 

ところがです。この大括弧で囲まなくても配列として認識されるみたいなんです。

array = "hoge""gefu""mofu"

puts array[1]
puts array.class

⬇︎出力

 MacBook-puro ruby array.rb
 gefu    #配列の取り出し方ができている
 Array   #この変数は配列クラスとして認識されている

 

 たまたま大括弧を書き忘れた時にきちんと動作しているので気付いたのですが、

 ary =  "yuki",45, ["mana""kana"], {:name => "takashi"
 puts ary [2][0]
 puts ary.class
 
 => mana
 => Array
 # 配列は[ ]で囲まなくても配列として認識される!?
 # 変数に複数の値を入れたら、それはもう配列として認識されるのかもしれない...

変数に複数の要素をぶち込んだらそれはもう配列ということにしてくれるようですね。まぁ確かにそうだしな。

 

 明示的にわかりやすくするために [ ] で囲むのかな。レファレンスをみても自分はこれについての記述を見つけられなかったんですよね。とはいえこういうこともあるんだなって思いました。

 

以上