在我正在研究的代码库中有一个模式,var x: Option[A] = None
它用于启动未初始化的变量,并在程序启动后的某个时间点填充,或者使用异步加载的数据,或者响应某种发生的第一个事件.
在此之后,变量始终是类型Some
- 该None
部分仅在程序开始时使用。
虽然这个模型很好地模拟了正在发生的事情(我看到的最后一个事件是None
程序启动时,并且永远都是这样Some(event)
),但我觉得每次与这些变量之一交互时我都在为使用选项付出代价,尽管我实际上只使用过一次。
似乎我不清楚 - 内部的值Some
可以改变,因此 var. 我不能只使用未来来等待初始化并从那里开始。
有没有更简洁的方法来表示这种延迟初始化?