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