【ノミでもわかる】Ruby クラスインスタンス変数の使い方

f:id:babashun1024:20170630122341p:plain

今回はRubyのクラスインスタンス変数について見ていきたいと思います。

 

クラス変数ともインスタンス変数とも違う、少しややこしい性質を持っているため、しっかりと理解するようにしましょう。

 

クラスインスタンス変数とは

一言でいうと「クラスオブジェクト内のインスタンス変数」です。

 

見た目はインスタンス変数と同じで

@変数名

 

で定義を行うことができます。

 

インスタンス変数と違うのは定義場所で

インスタンス変数はinitializeメソッドやインスタンスメソッド内で定義されますが

クラスインスタンス変数はクラス定義内で定義されます。

 

また、クラスメソッドからアクセスすることはできますが、インスタンスメソッドからアクセスすることは出来ないので注意が必要です。

クラスインスタンス変数を使ってみる

それではクラスインスタンス変数を実際に使ってみましょう。

 

 

インスタンスメソッドであるuser.read_class_instanceでは

@class_instanceがインスタンス変数として読み込まれたため、値がnilになります。

 

クラスメソッドであるUser.read_class_instanceでは

@class_instanceがクラスインスタンス変数として読み込まれるため、値がしっかり入っています。

 

このようにクラスインスタンス変数はクラス変数と違い

インスタンスメソッドからはアクセス出来ないと言うことを覚えておくようにしましょう。

まとめ

今回はクラスインスタンス変数について書いていきました。

クラスインスタンス変数はスコープが独特のため、はじめは理解が難しいと思います。

 

ただ、変数の一つとして理解は必須なので、しっかりと覚えておくようにしましょう。

4980円のプログラミングスクール

プログラミングスクールに通いたいけど

  • 「値段が高すぎる」
  • 「実力がつくか不安」
  • 「しっかりした先生に教えてもらえるか不安」

と思ったことはありませんか?

 

でもそんなあなたの悩みは一気に解決するんです。

「月額4980円で現役フリーランスエンジニアに質問し放題なプログラミングスクール」

を作りました。

 

人数に限りがありますのでお申し込みはお早めに。