Rubyに関する事

string#to_sym

Stringクラスの文字列をシンボル化する。


演算式

a ||= 1

aが偽もしくは未定義の時、1を代入する。初期化のような感じ。


attr_reader, attr_writer, attr_accessor

attr_reader

インスタンス変数を外から参照するためのアクセサを定義。

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

attr_writer

インスタンス変数に外から代入することを可能とするアクセサを定義。

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_accessor

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
最終更新:2009年11月25日 13:08