LoginSignup
1
0

More than 3 years have passed since last update.

Ruby インスタンス変数・ローカル変数 違い

Last updated at Posted at 2020-06-01

インスタンスメソッド

クラスの中でメソッドを定義すると、そのメソッドはインスタンスメソッドとなります。
インスタンスメソッドは、そのクラスのインスタンスに対して呼び出すことができるメソッドです。
(例)

class User
  def emotion
     "Happy!"
  end
end

user = User.new
user.emotion

結果

"Happy!"

インスタンス変数

クラス内では、インスタンス変数(同じインスタンス内で共有される変数)を使うことができます。
変数名は@から始まります。
(例)

class User
  def initialize(emotion)
    @emotion = emotion
  end

  def happy
    "I am #{@emotion}."
  end
end
user = User.new('Happy')
user.happy

結果

"I am Happy."

ローカル変数

メソッドやブロック内で作成される変数のことをいいます。
アルファベットの小文字、アンダースコアで始めます。
ローカル変数は参照する前に必ず=で値を代入して作成する必要があります。

(例)

class User
  def initialize(emotion)
    @emotion = emotion
  end

  def happy
    shuffled_emotion = @emotion.chars.shuffle.join
    "I am #{shuffled_emotion}."
  end
end
user = User.new('Happy')
user.happy

この例の場合、ローカル変数はshuffled_emotionになります。

結果

"I am ayppH."

参考にした文献

プロを目指す人のためのRuby入門

1
0
0

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