STUDY MEMO

勉強した内容をアウトプットしていきます。

<Ruby> メソッドメモ

inspect

オブジェクトを人間が読める形式に変換した文字列を返すメソッド。
railsガイドのarticles_controller.rbにinspectを使用すると以下のような表示になる。

inspectを使った場合

6] pry(main)> Article.first.inspect
  Article Load (0.2ms)  SELECT "articles".* FROM "articles" ORDER BY "articles"."id" ASC LIMIT ?  [["LIMIT", 1]]
=> "#<Article id: 1, title: \"タイトル\", text: \"テキスト\", created_at: \"2021-01-01 11:21:06\", updated_at: \"2021-01-01 11:21:06\">"

render plain: params[:article].inspectでブラウザに表示させると、 Image from Gyazo

inspectを使わない場合

[7] pry(main)> Article.first
  Article Load (0.3ms)  SELECT "articles".* FROM "articles" ORDER BY "articles"."id" ASC LIMIT ?  [["LIMIT", 1]]
=> #<Article:0x00007fd778834d28
 id: 1,
 title: "タイトル",
 text: "テキスト",
 created_at: Fri, 01 Jan 2021 11:21:06 UTC +00:00,
 updated_at: Fri, 01 Jan 2021 11:21:06 UTC +00:00>

render plain: params[:article].inspectでブラウザに表示させると、 Image from Gyazo

参考文献

Object#inspect (Ruby 3.0.0 リファレンスマニュアル)

Rails をはじめよう - Railsガイド

getsメソッド

一行読み込んで、読み込みに成功した時にはその文字列を返し、テキスト読み込みメソッドとして使用される。

x = gets
y = gets
z = gets
puts x + y + z

↓結果
Image from Gyazo

chompメソッドを使用すると自動で入力されている改行"¥n"を取り除くことができる。

puts x.chomp + y.chomp + z.chomp

↓結果
Image from Gyazo

または下記のような書き方ができる。

x = gets(chomp: true)
y = gets(chomp: true)
z = gets(chomp: true)
puts x + y + z

数値計算をしたい時はto_iメソッドを使用して、integer型に変換する。

x = gets
y = gets
z = gets
puts x.to_i + y.to_i + z.to_i

↓結果
Image from Gyazo

参考文献

IO#gets (Ruby 3.0.0 リファレンスマニュアル)

String#to_i (Ruby 3.0.0 リファレンスマニュアル)

pメソッド

引数を人間に読みやすい形に整形して改行と順番に出力し、原則デバッグに使用する。
putsとprintとpの実行例は以下の通りになる。

puts ""

=> nil
# putsの戻り値はnil、改行する

irb(main):006:0> p ""
""
=> ""
# pの戻り値は 引数がある場合はinspectメソッドで返される

irb(main):007:0> print ""
=> nil
# printの戻り値はnil、改行しない

参考文献

Kernel.#p (Ruby 3.0.0 リファレンスマニュアル)

even?メソッド

自身が偶数であれば真を返し、それ以外の場合は偽を返す。

irb(main):013:0> 4.even?
=> true
irb(main):014:0> 3.even?
=> false

参考文献

Integer#even? (Ruby 3.0.0 リファレンスマニュアル)