Why do we need `var`?
Opened this issue · 1 comments
jxnu-liguobin commented
I am confused with these codes.
What are the requirements for using var
and it needs to be public?
Every time I call method getLPAConfig
, var
changes, so this var
is unreliable as "static", why are we doing this?
case class LPAConfig(maxIter: Int, encodeId: Boolean = false)
object LPAConfig {
var maxIter: Int = _
var encodeId: Boolean = false
def getLPAConfig(configs: Configs): LPAConfig = {
val lpaConfig = configs.algorithmConfig.map
maxIter = lpaConfig("algorithm.labelpropagation.maxIter").toInt
encodeId = ConfigUtil.getOrElseBoolean(lpaConfig, "algorithm.labelpropagation.encodeId", false)
LPAConfig(maxIter, encodeId)
}
}
Nicole00 commented
the original intention is to set default value for some configs. But the default value is set in GetOrElse function, so the var looks no useless.
we can update it as
val maxIter = lpaConfig("algorithm.labelpropagation.maxIter").toInt
val encodeId = ConfigUtil.getOrElseBoolean(lpaConfig, "algorithm.labelpropagation.encodeId", false)
LPAConfig(maxIter, encodeId)