Stringクラスの文字列をシンボル化する。
a ||= 1
aが偽もしくは未定義の時、1を代入する。初期化のような感じ。
インスタンス変数を外から参照するためのアクセサを定義。
class Hoge
def initialize (name)
@name = name
end
attr_reader :name
end
a = Hoge.new('Hello, world!')
puts a.name
実行結果は
Hello, world!
となる。下記はattr_readerを使用せずに記述したもの
class Hoge
def initialize (name)
@name = name
end
def name
return @name
end
end
a = Hoge.new('Hello, world!')
puts a.name
インスタンス変数に外から代入することを可能とするアクセサを定義。
class Hoge attr_writer :name def to_s puts @name end end a = Hoge.new a.name = 'Hello, world!' a.to_s a.class
実行結果は
Hello, world! Hoge
となる。下記はattr_writerを使用せずに記述したもの
class Hoge def name=(val) @name = val end def to_i puts @name end end a = Hoge.new a.name = 'Hello, world!' a.to_i a.class
attr_readerとattr_writerの両方を指定したのと同じこと
class Hoge attr_accessor :name end a = Hoge.new a.name = 'Hello, world!' puts a.name
実行結果は
Hello, world!
となる。下記はattr_accessorを使用せずに記述したもの
class Hoge def name return @name end def name=(val) @name = val end end a = Hoge.new a.name = 'Hello, world!' puts a.name