Scala:将方法作为构造函数

时间:2016-10-10 23:37:53

标签: scala constructor default-constructor

我在Scala中有一个类,其构造函数有两个参数:

class SomeClass (x:Int, y:Int) {
}

我需要扩展构造函数,以便在初始化此类的对象时调用某个方法,该方法使用Scala默认的主构造函数中定义的x值,然后输出值{{ 1}}:

z

我希望def defineInputs(): Int = { val z = x + 1 z } 的值可以公开访问班级中的所有方法,就像zx一样。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您可以在类中定义val,如下所示:

scala> :pa
// Entering paste mode (ctrl-D to finish)

class SomeClass(x: Int, y: Int) {
  val z = x + 1
}

new SomeClass(0, 0).z

// Exiting paste mode, now interpreting.

defined class SomeClass
res0: Int = 1

您还可以使用案例类:

scala> case class SomeClass(x: Int, y: Int) {
     |   val z = x + 1
     | }
defined class SomeClass

scala> SomeClass(0, 0).z
res0: Int = 1