概要
Kernel#print(*arg) -> nil
詳細
引数を順に標準出力 $stdout に出力します。引数が与えられない時には変数 「$_」 の値を出力します。
文字列以外が与えられた場合は to_s して出力する。
変数 「$,」 に値がセットされている場合は、各引数の間にその値を挿入する。
変数 「$,」 は Array#join の引数省略時にも利用される。
変数 $\ (出力レコードセパレータ)に nil でな い値がセットされている時には、最後にそれを出力する。
サンプルコード:自作クラスの to_s の出力確認
Personクラスを作成し、attributesとしてnameとageを定義します。
to_sはnameを返します。
class Person attr_reader :name, :age def initialize(name, age) @name, @age = name, age end end tanaka = Person.new('tanaka', 97) print tanaka # クラスをオープンして to_s を追加 class Person def to_s @name end end puts print tanaka
出力
#<Person:0x2ad5198> tanaka
サンプルコード:セパレータ有無の確認
セパレータ($,)の有無による出力内容の確認
args = [*1..5] print *args puts $, = '@' print *args puts
出力
12345 1@2@3@4@5
サンプルコード:出力レコードセパレータ有無の確認
args = [*1..5] print *args puts $\ = '[Finish]' print *args puts
出力
12345 12345[Finish]
サンプルコード:引数省略時
コマンドラインで検証。 {1..3}はブレース展開で '1 2 3'になる。
print の引数が省略されているため gets によって $_ に1行読み込んだ結果が出力される。
$ echo {1..3} | tr ' ' '\n' | ruby -e 'gets;print;gets;print' 1 2