我的问题是,是否可以在 Scala 中重载构造函数?
所以我可以编写如下代码:
var = new Foo(1)
var = new Foo("bar")
如果不可能,是否有任何等效的技巧?
最佳答案
当然可以,但有限制。 Scala 要求您的构造函数之一是“主要的”。主构造函数具有特殊的、方便的语法,将构造函数参数放在类名之后。也可以定义其他“辅助”构造函数,但它们需要调用主构造函数。这与 Java 不同,而且限制性更强。这样做是为了使构造函数 args 可以被视为字段。
你的例子看起来像
class Foo(myArg:String){ //primary constructor
def this(myIntArg:Int) = this(myIntArg.toString) //secondary constructor
}
val x = new Foo(1)
val y = new Foo("bar")
关于scala - 是否可以在 Scala 中重载构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793418/