Rubyで文字列を表示しようと思ったら、とある2つの(正確には3つの)組み込みメソッドを使えばOKです。
それが「puts」と「print」です。
両者を使い分ける根本は「改行」をしたいか否かだけです。
RubyでClassクラスの引数付きnewメソッドを使い、インスタンスを生成すると同時にinitializeメソッドを呼ぶ
目次
文字列を表示した後、改行するなら「puts」、改行しないなら「print」が楽
論より証拠、実際にコードを書いてコンソールに出力してみます。
puts "勝手に改行されるputsメソッド" print "改行されないprintメソッド" puts "この文字列が上の文章の横にくっつく" print "どうしてもprintメソッドで改行したいなら\n" print "こうすればOK\n"
$ ruby print.rb 勝手に改行されるputsメソッド 改行されないprintメソッドこの文字列が上の文章の横にくっつく どうしてもprintメソッドで改行したいなら こうすればOK
printメソッドで改行したい場合は「\n」を付けると改行される
上記の例を見て頂けると分かると思いますが、printメソッドでも改行したい場合はその箇所に「\n」を付ければOKです。
\nの入力方法はWindowsなら簡単だが、Macなら「alt + ¥」なので少し面倒臭い…
という訳で、出力した文字列を改行したい場合はputs関数をおとなしく使いましょう。
ちなみに配列の出力は、putsメソッドは要素と改行を順に出力するのに対し、printメソッドは配列そのものをto_sメソッドにより文字列に変換して出力する
余談だが、配列を出力しようとした時の両者は挙動に違いがあります。
arr = ["arr1","arr2"] puts arr print arr
$ ruby print_array.rb arr1 arr2 ["arr1", "arr2"]
こんな感じ。(printメソッドは、改行入りません。)
putsメソッドでは、確かに配列の要素と改行が出力されているのに対して、printメソッドでは配列そのものが文字列となって出力されているという違いがあります。(要は、配列を出力しようと思ったら基本putsメソッドだよね、って話です。)
ハッシュはputs,printメソッド共に文字列としてそのまま出力される
ハッシュの場合、puts,printメソッドの違いは改行されるか否かだけになります。
hash = {"配列1"=>"arr1","配列2"=>"arr2"} puts hash print hash
$ ruby print_hash.rb {"配列1"=>"arr1", "配列2"=>"arr2"} {"配列1"=>"arr1", "配列2"=>"arr2"}
ハッシュのkeyとvalueを一緒に表示しようなんて事はないですが、keyを指定して取り出す場合も改行されるか否かの違いがあるので注意しましょう。