エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
同一構造のStructの再定義問題を回避する - Hello, world! - s21g
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
同一構造のStructの再定義問題を回避する - Hello, world! - s21g
RubyのStructは便利なのでよく使いますが、いくつか欠点があります。 無名Structを継承すると、スクリプ... RubyのStructは便利なのでよく使いますが、いくつか欠点があります。 無名Structを継承すると、スクリプトのreload時にsuperclass mismatchエラーが出る 同一構造のStructを定義しようとしても別なStructオブジェクトが返ってくる 名前付きStructの場合、Struct::StructName のような名前空間に定義されるので衝突が心配 これらの問題を回避するために、以下のように Struct.[] を定義することにしました。 1 def Struct.[](*members) 2 name = members.map(&:to_s).sort.map(&:upcase).join('__') 3 const_defined?(name) ? const_get(name) : new(name, *members) 4 end