2013年11月24日日曜日

rubyでStructを使ってclassを作成する。

通常のクラス
class Company
  attr_accessor :name, :money

  def initialize(name, money)
    @name = name
    @money = money
  end
end

c = Company.new("test", 100)
puts "#{c.class} #{c.name} #{c.money}"
Structを使うと簡単にクラスを作成できる。
Company = Struct.new(:name, :money)
c = Company.new("test", 100)
puts "#{c.class} #{c.name} #{c.money}"
メソッドを追加したい場合はブロックを渡す。
Company = Struct.new(:name, :money) do.
  def hello
    puts "hello"
    puts name
    puts money
  end
end
c = Company.new("test", 100)
c.hello

0 件のコメント: