Help us understand the problem. What is going on with this article?

(Ruby)インスタンス変数について(備忘録)

(Ruby)インスタンス変数について(備忘録)

by sabakan789
1 / 2

変数の種類

種類 命名規則 有効範囲
(スコープ)
ローカル変数 英小文字
または_
作られた場所(メソッドなど)でのみ name
_name
インスタンス変数 @で始まる クラスのメソッド内で定義され、そのクラス内で参照可能 @name
クラス変数 @@で始まる クラスのメソッド外で定義され、継承されても参照可能 @@name
グローバル変数 $で始まる プログラムの
どこからでも
参照可能
$name

インスタンス変数とは、オブジェクトの情報を格納した変数のこと

例)

qiita.rb
class Fish
  def name=(name)
    @name = name
  end

  def name
    @name
  end
end

fish = Fish.new

fish.name = "さば"

puts fish.name

=>"さば"

解説

def name=(name)
  @name = name
end

:point_up_2:nameを@name(インスタンス変数)に格納している(セッター)

def name
  @name
end

:point_up_2:メソッドに定義して値を取り出せるようにしている(ゲッター)

fish = Fish.new

:point_up_2:クラスをオブジェクト化している

fish.name = "さば"

:point_up_2:セッターを呼び出して、"さば"と言う値を格納している

puts fish.name

:point_up_2:ゲッターを呼び出して、putsで出力する

セッターとゲッターの省略した形

・セッター

def name=(name)
  @name = name
end

||
\/

attr_writter :name

・ゲッター

def name
  @name
end

||
\/

attr_reader :name

:point_down:まとめた形

qiita.rb
class Fish
  attr_writter :name
  attr_reader :name
end

 fish = Fish.new

 fish.name = "さば"

 puts fish.name

=>"さば"

さらに省略した形

attr_writter :name
attr_reader :name

||
\/

attr_accesor :name

:point_down:まとめた形

qiita.rb
class Fish
  attr_accesor :name
end

 fish = Fish.new

 fish.name = "さば"

 puts fish.name

=>"さば"

まとめ

インスタンス変数は、セッターで格納し、ゲッターで値を取り出している

参考

【七海有里佳とRubyの基礎】Lesson15 いろいろある変数の種類
【Ruby基礎】インスタンス変数とは

sabakan789
プログラミング勉強中
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした