DATA定数って何よ?
スクリプトの終わりを表す__END__
キーワードと一緒に使う定数よ。
__END__
キーワード以降に書いた内容をそのスクリプトでデータとして扱うことができるわ。
百聞は一見にしかず、サンプルコードよ。
sample.rb
puts DATA.gets # => AAA\n
puts DATA.gets # => BBB\n
puts DATA.gets # => CCC\n
__END__
AAA
BBB
CCC
こんな感じでファイルと同じように扱うことができるわ。
そのまま取り出すと改行コードの\n
が付いて来ちゃうから適宜chomp
メソッドで改行コードを取り除くといいわ。
## 何が嬉しいの?
書き捨てのシンプルなスクリプトを書くときとかに、使うデータをわざわざ変数やら定数やらで定義しなくてもいいっていうのがメリットね。
まあ使い勝手は...あなた次第よ! あたしは割と使うわ、おしゃれだもの。
以下、配列で回す場合のおまけのサンプルコードよ。
sample2.rb
DATA.each do |dish|
dish.chomp!
puts "#{dish}食べたい!"
end
__END__
ラーメン
チャーハン
ギョーザ
ラーメン食べたい!
チャーハン食べたい!
ギョーザ食べたい!
以上!知らなくても別に損はしないわ! 雑学よ、雑学!