前 - 上 - 次 - 目次

# Struct

  構造体クラス．`Struct.new`はこのクラスのサブクラ スを新たに生成します．個々の構造体はサブクラスから `new`を使って生成します．個々の構造体サブクラスで は構造体のメンバに対するアクセスメソッドが定義されています．

## スーパークラス:

  `Object`

## インクルードしているモジュール:

  `Enumerable`

## クラスメソッド:

  `new(name, member...)`

    `Struct`クラスにnameという名前の新しい サブクラスを作って，それを返します．サブクラスでは構造体のメ ンバに対するアクセスメソッドが定義されています．例えば:

    >     dog = Struct.new("Dog", :name, :age)
    >     fred = dog.new("fred", 5)
    >     fred.age=6
    >     printf "name:%s age:%d", fred.name, fred.age

    は`"name:fred age:6"`を出力します．

    構造体名はStructのクラス定数名になりますので大文字で始まる必 要があります．

## 構造体クラスのクラスメソッド:

  `new(value...)`
  `[value...]`

    構造体を生成します．引数は構造体の初期値です．構造体のメンバ の数と同じだけ引数を指定する必要があります．

  `members`

    構造体のメンバの名前の配列を返します．

## メソッド:

  `self[nth]`

    構造体のnth番目のメンバの値を返します． nthが文字列の場合はその名前のメンバの値を返します．

  `self[nth]=value`

    構造体のnth番目のメンバの値をvalueにし ます．

  `each`

    構造体の各メンバに対して繰り返します．

  `members`

    構造体のメンバの名前の配列を返します．

  `values`
  `to_a`

    構造体のメンバを配列にいれて返します．例えば以下のようにして passwdのエントリを出力できます．

    >     print Etc.getpwuid.values.join(":"), "\n"

前 - 上 - 次 - 目次

matz@netlab.co.jp