Ruby Struct

712 ワード

Structと非常に便利なプロパティをクラスにバインドしてアクセスできます.
class DTO < Struct.new(:name,:age); end
dto = DTO.new("melin",23)
puts dto.name
^D
melin

これにより、データ転送オブジェクトを容易に実現できます.
rubyはまた、より柔軟なクラスOpenStructを提供しています.プロパティを動的に追加できます
require 'ostruct'

flexie = OpenStruct.new(:music => 'rock')
flexie.bands = ['zep', 'sabbath']

flexie.music # => "rock"
flexie.bands.first # => "zep"

blockを追加することもできます
flexie.hello = Proc.new { puts 'hello world'}
flexie.hello.call # => hello world