Scala:调用方法作为构造函数的一部分
Scala: Call a method as part of the constructor
我在 Scala 中有一个 class,它的构造函数有两个参数:
class SomeClass (x:Int, y:Int) {
}
我需要扩展构造函数,所以当这个 class 的一个对象被初始化时,一些方法被调用,它使用 Scala 默认的主构造函数中定义的 x
的值,并且然后输出一个值 z
:
def defineInputs(): Int = {
val z = x + 1
z
}
我希望 class 中的所有方法都可以公开访问 z
的值,就像 x
和 y
一样。
你能帮我解决这个问题吗?
你可以简单地在class里面定义一个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
你也可以使用案例 class:
scala> case class SomeClass(x: Int, y: Int) {
| val z = x + 1
| }
defined class SomeClass
scala> SomeClass(0, 0).z
res0: Int = 1
我在 Scala 中有一个 class,它的构造函数有两个参数:
class SomeClass (x:Int, y:Int) {
}
我需要扩展构造函数,所以当这个 class 的一个对象被初始化时,一些方法被调用,它使用 Scala 默认的主构造函数中定义的 x
的值,并且然后输出一个值 z
:
def defineInputs(): Int = {
val z = x + 1
z
}
我希望 class 中的所有方法都可以公开访问 z
的值,就像 x
和 y
一样。
你能帮我解决这个问题吗?
你可以简单地在class里面定义一个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
你也可以使用案例 class:
scala> case class SomeClass(x: Int, y: Int) {
| val z = x + 1
| }
defined class SomeClass
scala> SomeClass(0, 0).z
res0: Int = 1