0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[ruby]スコープとは

Posted at

#初めに
アウトプットのため投稿させてもらいます

#スコープとは
スコープは変数の有効範囲のことです
範囲の外からはその変数を利用できないです

そのスコープに対応するためにRubyには様々な変数が用意されています。

#グローバル変数
スコープはプロジェクトの全ての範囲です

$global = "global"

def japan()
  p $global
end

japan()

#実行結果
"global"

変数は同じ名前のものが重複すると、予期せず値が書き換えられてしまう場合があるのできをおつけましょう

#インスタンス変数
スコープはインスタンス内ならどこでも参照できます

class Car
  def initialize(name)
    @name = name
  end

  def put_name
    puts @name
  end
end

car1 = Car.new("トヨタ")
car2 = Car.new("三菱")

car1.put_name
car2.put_name

#実行結果
トヨタ
三菱

実行するとインスタンス毎に違った値が出力されます

#クラス変数
スコープはクラス内です

class Car
  def initialize(name)
    @@name = name
  end

  def put_name
    puts @@name
  end
end

car1 = Car.new("トヨタ")
car2 = Car.new("三菱")

car1.put_name
car2.put_name

#実行結果
三菱
三菱

インスタンス変数と違いCarの名前が三菱で上書きされていることがわかります。

#終わりに
グローバル変数、インスタンス変数、クラス変数のスコープのアウトプットでした

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?