Scala多次初始化调用的构造函数
我在Scala中有一个简单的类。我想在创建类时初始化一些数据。这是我的代码:Scala多次初始化调用的构造函数,scala,constructor,initialization,Scala,Constructor,Initialization,我在Scala中有一个简单的类。我想在创建类时初始化一些数据。这是我的代码: class SomeClass(someSeq: Seq[Int]) { val someMap = scala.collection.mutable.Map.empty[Int, Set[String]] init() def init(): Unit = { println("init") } override def getData(aValue: In
class SomeClass(someSeq: Seq[Int]) {
val someMap = scala.collection.mutable.Map.empty[Int, Set[String]]
init()
def init(): Unit = {
println("init")
}
override def getData(aValue: Int): Set[String] = {
println("I was called")
}
}
以及运行它的代码:
def someClass = new SomeClass(a)
for (i <- 1 to 3) {
someClass.getData(i)
}
“Init”中的代码初始化“someMap”
出于某种原因,每次我调用方法“getData”时都会调用Init方法。我做错了什么
def someClass = new SomeClass(a)
您的def
定义了一个方法。调用该方法将调用newsomeclass(a)
相反。这将调用newsomeclass(a)
一次,并将结果分配给SomeClass
此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)
您的def
定义了一个方法。调用该方法将调用newsomeclass(a)
相反。这将调用newsomeclass(a)
一次,并将结果分配给SomeClass
此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)
您的def
定义了一个方法。调用该方法将调用newsomeclass(a)
相反。这将调用newsomeclass(a)
一次,并将结果分配给SomeClass
此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)
您的def
定义了一个方法。调用该方法将调用newsomeclass(a)
相反。这将调用newsomeclass(a)
一次,并将结果分配给SomeClass
此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)“每次我调用方法“getData”时都会调用Init方法。”“不,它没有。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)每次我调用方法“getData”时,都会调用Init方法。不,不是。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)每次我调用方法“getData”时,都会调用Init方法。不,不是。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)每次我调用方法“getData”时,都会调用Init方法。不,不是。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)谢谢,很抱歉给你添麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是放错位置的覆盖是无可争辩的不可编译的。谢谢,很抱歉给您带来麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是放错位置的覆盖是无可争辩的不可编译的。谢谢,很抱歉给您带来麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是放错位置的覆盖是无可争辩的不可编译的。谢谢,很抱歉给您带来麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是,放错位置的覆盖是无可辩驳的不可编译的。
def someClass = new SomeClass(a)
for (i <- 1 to 3) {
someClass.getData(i)
}
val someClass = new SomeClass(a)