LoginSignup
2
3

More than 5 years have passed since last update.

Hello, Ruby. を解体

Last updated at Posted at 2017-07-12

はじめに

Ruby学習中に、putsメソッド、printメソッド、pメソッドの振る舞いで混乱した時に、「全部文字列を表示するやつだけど、表示され方とか用法が違う」くらいざっくり考えていたので、初歩の初歩 "Hello, Ruby." を細かく解体して考えてみました。

Ruby
print("Hello, Ruby.\n")
=> Hello, Ruby.

メソッド Print

メソッドとは、オブジェクトを扱うための手続き

print
Printメソッド。引数をコンソールに出力する。
Kernelモジュールで定義されているため、全てのクラスから参照できる。(Printクラスを参照するための新しいクラスや変数を定義する必要がない)

引数  ("Hello, Ruby.\n")

引数 = メソッドに渡す情報

( )
引数を囲っている

"Hello, Ruby."
引数の内容。文字列。文字列 (String)オブジェクト。
なお、シングルクォートを使うと、特殊文字が解釈されない。

<例>
print('Hello, Ruby.\n')
=>Hello, Ruby.\n

\n
改行文字。\は、それに続く文字に特別な意味を与える文字。

<例>
print("Hello, \"Ruby\".\n")
=>Hello, "Ruby".

つまるところ

printメソッドに文字列オブジェクトが含まれた情報を渡して、それをコンソールに出力している。

ついでにpメソッドについて

printメソッドは、引数をコンソールに表示するメソッドのため、戻り値はnillとなる。
pメソッドの戻り値は引数。inspectメソッド(引数を文字列にして返す)の結果に改行を加えて出力される。

コンソール
irb --simple-prompt
print("Hello, \"Ruby\".\n")
p("Hello, \"Ruby\".\n")

Printメソッドの場合の結果

Hello, "Ruby".
=>nil

Pメソッドの場合の結果

=> "Hello, \"Ruby\".\n"

参照↓
Rubyリファレンス
『たのしいRuby 第5版』

ご指摘、補足、もっとここ掘って考えた方がいいよ、などありましたらコメントいただけるとありがたいです。
※コメントいただいた通り、ブランクの使い方を誤っていたため、修正いたしました。

2
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3