LoginSignup
1
0

More than 1 year has passed since last update.

returnとputsの違い

Last updated at Posted at 2021-06-23

return と putsの違い

どちらも文を表示させる機能だが、メソッドを終了させるかどうかという点が異なる。

return

・メソッドから脱出できる
・戻り値を受け取るだけ(putsしないと表示されない)

puts

・メソッドを終了させない

returnを使うとdefから脱出できる

def condition(money = "")
return "お金がない" if money.empty?
 "お金持ち"
end
puts condition("")

returnを使わないとdefから脱出できない

def condition(money = "")
 "お金がない" if money.empty?
 "お金持ち"
end
puts condition("")

最後の文だけが機能するため、どんな値を入れても「お金持ち」しか表示されない

selfの重要性

selfを用いた場合

class Menu
  attr_accessor :name
  attr_accessor :price
    end

  def info
    return "#{self.name} #{self.price}円"
  end

selfを用いない場合

class Menu
  attr_accessor :name
  attr_accessor :price
    end

  def info
    return "#{name} #{price}円"
  end

これらは出力値が同じだが、文法的にselfを使う意味はあるのか?

【結論】同名のローカル変数があるときに区別するためにselfを使用する

上記の例で言えば、複雑なプログラムを書くときにどの「name」か判別するためにselfを使用する

1
0
1

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
1
0