我在Scala中有一个类,其构造函数有两个参数:
class SomeClass (x:Int, y:Int) {
}
我需要扩展构造函数,以便在初始化此类的对象时调用某个方法,该方法使用Scala默认的主构造函数中定义的x
值,然后输出值{{ 1}}:
z
我希望def defineInputs(): Int = {
val z = x + 1
z
}
的值可以公开访问班级中的所有方法,就像z
和x
一样。
你能帮我解决这个问题吗?
答案 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