【发布时间】:2010-02-27 19:23:53
【问题描述】:
给定以下类:
class Test
attr_accessor :name
end
当我创建对象时,我想做以下事情:
t = Test.new {name = 'Some Test Object'}
目前,它导致name 属性仍然是nil。
如果不添加初始化程序,这可能吗?
【问题讨论】:
-
排除初始化方法(这就是您的意思吗?)使事情变得困难。在创建新的
Test对象时,name是否应该每次都进行相同的初始化?还是应该获取开放代码中指定的值? -
动机是做一些类似于 C# - msdn.microsoft.com/en-us/library/bb384062.aspx
-
您对我提出的解决方案有什么不满意的地方吗?
-
不,我喜欢它,但您需要在实际类中添加一个初始化步骤。如果您查看 C# 是如何做到的,那么它是一种语言功能,适用于任何 C# 类。如果我已经有一个初始化步骤会怎样?如果它来自外部库怎么办?
-
@Ben 你有没有找到解决方案?我也喜欢 C# 对象初始化器
标签: ruby