having multiple constructors in ruby
is there to have a Way"初始化"方法在多个红宝石?一个方法excepting for example:当一excepts argument三?P></
something likeP></
1 2 3 4 5 6 7 8
| class One
def initialize (a)
puts a
end
def initialize_1 (a,b)
puts a ,b
end
end |
- 我同意兰布利克斯的观点。还相关-stackoverflow.com/questions/9373104/…。如果有一个具体的问题你想解决,你可以尝试发布一个更具体的问题,因为可能有一个不同的方法来解决它。
- 谢谢,我只是想弄清楚这门语言的来龙去脉,没有什么特别的问题。我知道答案是否定的,但我仍然不确定你是如何绕过这个问题的。
- 你可以使用konstructorgem github.com/snovity/konstructor来达到这个效果,例如,你只需声明konstructor :initialize_1即可。
initialize实际上不是构造函数。您确实可以有两个构造函数。
1 2 3 4 5 6 7 8 9 10 11
| class One
singletonclass.class_eval{alias old_new :new}
def self.new a
puts a
old_new
end
def self.new_1 a, b
puts a, b
old_new
end
end |
- 这给你买了什么?所有的东西都会通过最初的新的和初始化的。也可以说def self.new_1(a,b); new(a,b); end,而不需要复杂的别名goo。通常使用具有不同名称的可选构造函数,将其参数重新打包为基new的常规形式。
- 我们又见面了,难道你不是那个给我一个很好的解释,说明self如何工作的人吗?不管怎样,每当我发送多个参数时,这仍然会抱怨"参数数目错误"。我也不知道这会给我带来什么…