ruby - 什么时候应该使用 Struct 与 OpenStruct?

标签 ruby struct

一般来说,与 Struct 相比,使用 OpenStruct 有哪些优点和缺点?哪种类型的一般用例适合其中的每一个?

最佳答案

使用OpenStruct,您可以任意创建属性。另一方面,Struct 必须在您创建它时定义其属性。选择哪一个应该主要取决于您以后是否需要能够添加属性。

考虑它们的方式是将它们作为一方面的哈希和另一方面的类之间的光谱的中间地带。它们暗示了数据之间比 Hash 更具体的关系,但它们没有类那样的实例方法。例如,一个函数的一堆选项在哈希中是有意义的;他们只是松散地相关。函数所需的姓名、电子邮件和电话号码可以一起打包在 StructOpenStruct 中。如果该姓名、电子邮件和电话号码需要方法来提供“姓氏”和“姓氏”两种格式的姓名,那么您应该创建一个类来处理它。

关于ruby - 什么时候应该使用 Struct 与 OpenStruct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1177594/

相关文章:

ruby - 使用 Selenium Ruby Webdriver 比较两个图像

ruby-on-rails - destroy_user_session 导致在 Ruby 中使用 Devise 显示操作

c++ - 使用用户输入从结构返回多个值

c# - 获取对数组内部结构的引用

c++ - 我怎样才能声明一个结构?

c++ - 使用指针 C++ 更改内存位置的值

pointers - 不使用 reflrect 打印类型并创建新对象

ruby-on-rails - 使用 Rails 深度重定向回 : (history. go(-N))

ruby - 为什么单词中的析取和连词需要括号?

ruby-on-rails - 查询数组到。事件记录关系