2010年06月16日

Ruby on Rails クラス変数 インスタンス変数 疑似変数

クラス変数とは?


参照可能範囲がクラス内です。

インスタンス変数とは?


参照可能範囲がメソッド内です。

疑似変数とは?


基本真偽を示すものかな。

クラス変数


これは特に書く事ないですね。
@@hoge = "hoge"
puts @@hoge
=> "hoge"

変数の頭に@@を付ければクラス変数です。
これもグローバル変数と同様参照範囲が大きいので、
使用する場合は注意我必要です。

インスタンス変数


普通の変数とこのインスタンス変数が最もよくつかいますね。
$ vi hoge_controller.rb
def hoge
 @hoge = "hoge"
end

$ vi hoge.rthml
<%= puts @hoge %>
=> "hoge"

メソッドで定義してビューで呼び出す場合、@ですね。

疑似変数


疑似変数の種類は少ないので、全て紹介します。
__FILE__:現在実行されているプログラムのファイル名
irb
__FILE__
=> "(irb)"

__LINE__:現在実行されているプログラムのファイル内の行数
irb
__LINE__
=> 1
__LINE__
=> 2

false:偽を表す
nil:参照先がない、偽を表す
self:インスタンス自体への参照
irb
class User
puts self
end
=> User

true:真を表す
posted by RicK at 14:48| Comment(2) | TrackBack(0) | 日記
この記事へのコメント
インスタンス変数
参照可能範囲がメソッド内です。

上記間違いと思います。
同じオブジェクト内であれば、別のメソッドからも
同じインスタンス変数を参照することが可能だと思います。
Posted by 王 at 2012年08月30日 19:02
コンソールにて

Class Hoge
def a
@mage="1"
end
def b
p @mage
end
end

c=Hoge.new
c.a
=> "1"
c.b
"1"
=> "1"

本当だ、初めて知りました。
なるほど〜ご指摘、ありがとうございます。
Posted by RicK at 2012年09月28日 19:38
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/38961812

この記事へのトラックバック