我有一个scala类:
class Foo {
def this(st: String) {
var baz = List[String]()
var jaz = "one" + st
// more code logic
}
}
首先上面的代码没有编译。其次,我希望baz和jaz是上面单独构造函数本地的私有变量,而不是实例变量。
如何解决这个问题?
答案 0 :(得分:2)
它不能编译,因为必须在辅助构造函数中发生的第一件事是对主构造函数的调用。我不明白第二个问题,因为你声明的变量已经是私有的
答案 1 :(得分:1)
这样的事情可能就是你在寻找什么?
class Foo(st: String) {
val myInstance = {
var baz = List[String]()
var jaz = "one" + st
jax + baz.mkString(":")
}
}
您的类的主体是的构造函数。如果你想拥有一些临时值,你可以用你想要的任何东西声明一个块;该块可以返回一个值,您可以将该值存储在实例变量中,在本例中为myInstance
。