Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@sabakan789

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

More than 1 year has passed since last update.

(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基礎】インスタンス変数とは

2
Help us understand the problem. What is going on with this article?
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
sabakan789
プログラミング勉強中

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?