使用Option / Maybe表示异步初始化的未初始化变量

时间:2013-11-14 11:12:21

标签: scala asynchronous maybe

在我正在处理的代码库中有一种模式,其中var x: Option[A] = None用于未初始化的变量,并在程序启动后的某个时刻填充,或者使用异步加载的数据,或者响应于这是第一次发生某种事件。

在此之后,变量始终为Some类型 - None部分仅在程序开始时使用。

虽然这样可以很好地模拟正在发生的事情(我在节目开始时看到的最后一个事件是None,并且在此之后它是Some(event)),我觉得我付出了代价每次我与其中一个变量交互时使用一个选项,即使我实际上只使用过一次。

似乎我不清楚 - Some内的值可以改变,因此var。我不能仅仅使用未来等待初始化并从那里开始。

是否有更清晰的方式来表示此延迟初始化?

0 个答案:

没有答案