一般来说,与 Struct 相比,使用 OpenStruct 有哪些优点和缺点?哪种类型的一般用例适合其中的每一个?
最佳答案
使用OpenStruct
,您可以任意创建属性。另一方面,Struct
必须在您创建它时定义其属性。选择哪一个应该主要取决于您以后是否需要能够添加属性。
考虑它们的方式是将它们作为一方面的哈希和另一方面的类之间的光谱的中间地带。它们暗示了数据之间比 Hash
更具体的关系,但它们没有类那样的实例方法。例如,一个函数的一堆选项在哈希中是有意义的;他们只是松散地相关。函数所需的姓名、电子邮件和电话号码可以一起打包在 Struct
或 OpenStruct
中。如果该姓名、电子邮件和电话号码需要方法来提供“姓氏”和“姓氏”两种格式的姓名,那么您应该创建一个类来处理它。
关于ruby - 什么时候应该使用 Struct 与 OpenStruct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1177594/