【发布时间】:2013-02-24 19:46:41
【问题描述】:
根据the documentation未设置的Struct属性设置为nil:
未设置的参数默认为零。
是否可以为特定属性指定默认值?
例如,对于下面的 Struct
Struct.new("Person", :name, :happy)
我希望属性 happy 默认为 true 而不是 nil。我怎样才能做到这一点?如果我这样做
Struct.new("Person", :name, :happy = true)
我明白了
-:1: syntax error, unexpected '=', expecting ')'
Struct.new("Person", :name, :happy = true)
^
-:1: warning: possibly useless use of true in void context
【问题讨论】:
-
如果不定义新类,我认为这是不可能的。
-
@Linuxios 至少可以用猴子补丁来实现吗?
-
你为什么不考虑
OpenStruct来实现你的目标? -
@Passionate 如果可以通过
OpenStruct实现,那可能是有用的答案。 -
检查我的答案@N.N.
标签: ruby