【发布时间】:2011-03-12 18:41:27
【问题描述】:
我可以在函数体中创建 Ruby 类吗? 我似乎收到了错误,告诉我它是不允许的,但我认为这应该是因为这里的类太对象了。
A级 定义方法 B类 结尾 结尾 结束这会失败,并在方法体中出现错误“类定义”。 如果我们不能,为什么我们不能在方法中创建类?
【问题讨论】:
-
你为什么要这样做?
-
@Mark - 我一直在用 C# 中的匿名对象来做这件事。诚然,它们本身没有方法,但这仍然是想要动态创建类的正当理由。一个短暂的容器对象来临时保存一些我可以以强类型方式使用的数据(至少通过名称引用属性)是一个非常方便的东西。
-
@Mark- 正如 tvanfosson 所说!
-
有条件地对类进行猴子补丁也很有用。
-
@MarkElliot 在测试中,例如。此外,某些核心开发人员出于某种原因创建了此错误条件,它可能是允许的,直到有人明确禁止。
标签: ruby