1. ホーム
  2. ruby

[解決済み】StructとOpenStructはいつ使い分けるべき?

2022-04-13 05:03:57

質問

一般的に、Structと比較して、OpenStructを使用する利点と欠点は何でしょうか?また、それぞれどのような一般的なユースケースに適合するでしょうか?

どのように解決するのですか?

を使用すると OpenStruct は、任意に属性を作成することができます。 A Struct 一方、作成時には必ず属性が定義されていなければなりません。 どちらを選ぶかは、後で属性を追加する必要があるかどうかで決めるとよいでしょう。

クラスは、ハッシュとクラスの中間的な存在と考えることができます。 クラスは、データ間の関係を Hash しかし、クラスのようなインスタンスメソッドは持っていない。 例えば、ある関数のオプションの束は、ハッシュの中で意味を持ちますが、それらは緩やかにしか関連していません。 ある関数が必要とする名前、メールアドレス、電話番号などは Struct または OpenStruct . その名前、電子メール、電話番号が、"First Last" と "Last, First" の両方の形式で名前を提供するメソッドを必要とするなら、それを処理するクラスを作成する必要があるのです。