局部變量我有一個階等級:定義斯卡拉構造
class Foo {
def this(st: String) {
var baz = List[String]()
var jaz = "one" + st
// more code logic
}
}
首先上面的代碼不能編譯。其次,我想baz和jaz是上面的單獨構造函數的局部變量,而不是實例變量。
如何解決這個問題?
局部變量我有一個階等級:定義斯卡拉構造
class Foo {
def this(st: String) {
var baz = List[String]()
var jaz = "one" + st
// more code logic
}
}
首先上面的代碼不能編譯。其次,我想baz和jaz是上面的單獨構造函數的局部變量,而不是實例變量。
如何解決這個問題?
它不編譯,因爲必須在輔助構造函數中發生的第一件事情是調用主構造函數。我不明白第二個問題,因爲你聲明的變量已經是私人的
這樣的事情可能是你在找什麼?
class Foo(st: String) {
val myInstance = {
var baz = List[String]()
var jaz = "one" + st
jax + baz.mkString(":")
}
}
您類的主體是構造。如果你想擁有一些臨時值,你可以用你想要的任何東西來聲明一個塊;該塊可以返回一個值,並且可以將該值存儲在實例變量中,在這種情況下爲myInstance
。
如果您需要多次使用一個值,則可以將這些塊合併爲一個並返回一個元組。 – ziggystar
http://stackoverflow.com/q/194812/203968有一些免費的斯卡拉書籍在其中閱讀其中之一。例如http://www.artima.com/pins1ed/ – oluies
@oluies老兄它就像一個金礦! thx ... – agilesteel