【发布时间】:2012-06-22 16:33:00
【问题描述】:
我正在将一些代码从其他语言移植到 Ruby,在我的类中我需要保持与这 4 个构造函数的兼容性:
def initialize(b)
def initialize(a, b)
def initialize(b, c)
def initialize(a, b, c)
我尝试过这种方式,但它不起作用:
def initialize(a="", b, c="")
有没有聪明的解决方案?我不能使用哈希。
【问题讨论】:
-
initialize(a, b)和initialize(b, c)有什么区别? -
a、b和c是完全不同的类型。 -
将代码从静态类型语言转换为动态类型语言,您要么必须从根本上改变一些东西,要么实现非常丑陋的非 Ruby 解决方法。
-
您想转换为 Ruby 但使用您要迁移的语言的约定对我来说没有意义。
-
也许移植到 Ruby 根本没有意义。如果我能找到一些规则,那么我可以自动移植。有什么工具可以做到这一点吗?
标签: ruby constructor-overloading