初始化辅助函数中的变量
|
有时我正在建立一个我想在其中添加
reset
函数的类。例如
class DFA(val initialState:State) {
var states = Map[State,State]()
var currentState: State = initialState
reset
def reset {currentState = initialState}
}
糟糕!您的DRY铃铛没有响吗?我将currentState
设置为initialState
两次。一次在reset
中,一次在构造函数中。我不能只留下未初始化的ѭ5,否则编译器会抱怨。
我当然可以
class DFA(val initialState:State) {
var states = Map[State,State]()
var evilNullVariableWeMustNeverUse = null
var currentState: State = evilNullVariableWeMustNeverUse
reset
def reset {currentState = initialState}
}
但我认为这样做的缺点是显而易见的。
在这种简单的情况下,还算不错,但是如果您有5个变量或更复杂的逻辑,它将变得令人讨厌。
我该如何设计?
没有找到相关结果
已邀请:
3 个回复
犁攀富
然后:
和:
可以看到以下好处:
无需将
和
存储在另一个变量中即可进行重置。
痴浪墨
苦诫