0
0

[Ruby]インスタンス変数と普通の変数の違い

Posted at

はじめに

Rubyのコードを見たとき、何これ(下のコードを参照)と思ったことがあったのでインスタンス変数の違いと普通変数の違いをまとめます。

.rb
@calculator = Calculator.new

目次

  • はじめに
  • 違い
  • インスタンス変数とは
  • 普通の変数とは
  • おわりに

違い

3つの要素による違いがあります。

  • スコープ
  • 寿命
  • 表記方法

それぞれ以下で解説します。

インスタンス変数とは

【スコープ】

  • インスタンス変数は、クラスのインスタンス内で有効
  • クラスのメソッド内やインスタンスメソッド内で宣言され、そのクラスのインスタンス内で共有される

【寿命】

  • インスタンスが存在する限り生きてる!
  • インスタンスが亡くなったら破棄される!

【表記法】
以下参照

.rb
@instance_variable = "This is an instance variable"

## 普通の変数とは

【スコープ】

  • 通常の変数は、メソッド内で宣言されます!
  • メソッド内でのみ有効です!

【寿命】

  • 変数が宣言されたスコープでのみ使えます!
  • ブロックやメソッド終了とともに滅びます!

【表記法】
以下参照

.rb
nomarl_variable = "This is an normal variable"

おわりに

2つの違いを総括します

  • スコープ
  • 寿命
  • 表記方法

コードで表すと以下のような感じです!

.rb
class Example
  def initialize
    @instance_variable = "I am an instance variable"
    local_variable = "I am a local variable"
  end

  def example_method
    # @instance_variable はこのメソッド内でアクセス可能
    puts @instance_variable

    # local_variable はこのメソッド内でのみアクセス可能
    # 他のメソッドやクラス外からはアクセスできない
    puts local_variable  # エラーが発生する可能性があります
  end
end

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