カテゴリー
未分類

Rubyのクラス変数

クラス変数はインスタンスメソッドやクラスメソッドからアクセスできる

class Message
@@timezone = "Europe/London"
def initialize(name)
ENV['TZ'] = @@timezone
@name = name
end
def hello
"Hello #{@name} " + Time.now.to_s
end
end
msg = Message.new("Jane")
p msg.hello
# "Hello Jane 2014-09-22 08:20:29 +0100"

インスタンスメソッド内で代入と参照ができる

class Message
@@timezone = "Europe/London"
def initialize(name)
@@timezone = "Asia/Tokyo"
ENV['TZ'] = @@timezone
@name = name
end
def hello
"Hello #{@name} " + Time.now.to_s
end
end
msg = Message.new("Jane")
p msg.hello
# "Hello Jane 2014-09-22 16:15:05 +0900"

クラスメソッドからもきっちり代入とアクセスができる

require "Time"
class Message
@@timezone = "Europe/London"
def self.hello(name)
@@timezone = "Asia/Tokyo"
ENV['TZ'] = @@timezone
"Hello #{name} " + Time.now.to_s
end
end
p Message.hello("Jane")
# "Hello Jane 2014-09-22 16:17:43 +0900"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA