読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

名前付き構造体

「Struct.new」の第一引数で、構造体の名前を指定できたりします。

  • 名前を指定した場合、Structのクラス定数として生成された構造体が定義されます
    • 定義後は「Struct::<構造体名>」で作成した構造体にアクセスできます。
    • 変数や定数に代入する必要はありません。(代入も可能ですが。)
  • 構造体名は省略可能で、省略された場合、代入先の定数(変数)名がクラス名となります。(↑の例を参照)
# 名前付きで構造体を定義。
foo = Struct.new( "Kitten", :name )

# 構造体は、Struct::Kittenとして定義される。
puts Struct::Kitten.new( "mii" ).name
puts foo.new( "tora" ).name # 代入も可能

実行結果です。

mii
tora


いつも↓のような感じで使っていたのだけど、こういう定義の方法もあるのかー。

Kitten = Struct.new( :name )
puts Kitten.new( "mii" ).name

ふむ。