サーチ…


構文

  • Structure = Struct.new:属性

データの新しい構造の作成

Structは、指定された属性とアクセサメソッドで新しいクラスを定義します。

Person = Struct.new :first_name, :last_name

オブジェクトをインスタンス化して使用することができます。

person = Person.new 'John', 'Doe'
# => #<struct Person first_name="John", last_name="Doe">

person.first_name
# => "John"

person.last_name
# => "Doe"

構造クラスのカスタマイズ

Person = Struct.new :name do
  def greet(someone)
    "Hello #{someone}! I am #{name}!"
  end
end

Person.new('Alice').greet 'Bob'
# => "Hello Bob! I am Alice!"

属性ルックアップ

属性はキーとして文字列とシンボルにアクセスできます。数値インデックスも機能します。

Person = Struct.new :name
alice = Person.new 'Alice'

alice['name']  # => "Alice"
alice[:name]   # => "Alice"
alice[0]       # => "Alice"


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow