Scala constructor overload?

前端 未结 5 1423
栀梦
栀梦 2020-11-27 15:27

How do you provide overloaded constructors in Scala?

5条回答
  •  感情败类
    2020-11-27 15:29

    As of Scala 2.8.0 you can also have default values for contructor- and method parameters. Like this

    scala> class Foo(x:Int, y:Int = 0, z:Int=0) {                           
         | override def toString() = { "Foo(" + x + ", " + y + ", " + z + ")" }
         | }
    defined class Foo
    
    scala> new Foo(1, 2, 3)                                                    
    res0: Foo = Foo(1, 2, 3)
    
    scala> new Foo(4)                                                          
    res1: Foo = Foo(4, 0, 0)
    

    Parameters with default values must come after the ones with no default values in the parameter list.

提交回复
热议问题