Ruby Arrayオブジェクト メモ その2

%w 記法とか Arrayオブジェクトの * メソッド?オペレータ?で気になったのでメモ
記述1:配列の中に配列〜

ruby -e "p [%w[a b c],%w[d e f] ]"
[ ["a", "b", "c"], ["d", "e", "f"] ]

記述2:配列の加算

ruby -e "p [*%w[a b c] + %w[d e f] ]"
["a", "b", "c", "d", "e", "f"]

さてここからが本題
記述3:前方の配列にのみ「*」
エラーが出て怒られちゃいます

ruby -e "p [*%w[a b c], %w[d e f] ]"

  • e:1: syntax error, unexpected ',', expecting ']'

p [*%w[a b c], %w[d e f] ]
^

  • e:1: syntax error, unexpected ']', expecting $end

記述4:後方の配列のみ「*」
こちらは怒られません

ruby -e "p [%w[a b c], *%w[d e f] ]"
[ ["a", "b", "c"], "d", "e", "f"]

記述5:両方の配列に「*」
やっぱ怒られた

ruby -e "p [*%w[a b c], *%w[d e f] ]"

  • e:1: syntax error, unexpected ',', expecting ']'

p [*%w[a b c], *%w[d e f] ]
^

  • e:1: syntax error, unexpected ']', expecting tCOLON2 or '[' or '.'

記述6:配列の加算をしてから「*」

ruby -e "p [*(%w[a b c] + %w[d e f])]"
["a", "b", "c", "d", "e", "f"]

むむたかが Array されど Array
奥が深いな