Struct と OpenStruct をいつ使用するべきですか?
概要
一般に、Struct と比較して OpenStruct を使用する場合の利点と欠点は何ですか?これらのそれぞれにどのようなタイプの一般的なユースケースが当てはまりますか?
解決策
OpenStruct を使用すると、属性を任意に作成できます。一方、Struct は作成時に属性を定義する必要があります。どちらを選択するかは、主に、後で属性を追加できるかどうかに基づいて選択する必要があります。
これらは、一方のハッシュと他方のクラスの間のスペクトルの中間点として考えることができます。これらは、ハッシュよりもデータ間の具体的な関係を暗示しますが、クラスのようなインスタンス メソッドを持ちません。たとえば、関数のオプションの束はハッシュで意味を成します。それらは大まかに関連しているだけです。関数に必要な名前、電子メール、電話番号は、Struct または OpenStruct にまとめてパッケージ化できます。その名前、電子メール、および電話番号に、「姓、名」形式と「姓、名」の両方の形式で名前を提供するメソッドが必要な場合は、それを処理するクラスを作成する必要があります。