私が取り組んでいるコードベースには、var x: Option[A] = None
初期化されていない変数に使用されるパターンがあり、プログラムの開始後のある時点で、非同期にロードされたデータで、または発生したある種の最初のイベントに応答して設定されます.
この時点以降、変数は常に型になりますSome
。None
パーツはプログラムの開始時にのみ使用されます。
これは何が起こっているかを非常によくモデル化していますが (私が見た最後のイベントNone
はプログラムの開始時であり、その後Some(event)
ずっとです)、これらの変数の 1 つを操作するたびに、オプションを使用するための代償を払っているように感じます。 、実際に使用するのは一度だけですが。
私は不明確だったようです-内の値Some
は変更される可能性があるため、var. 未来を使用して初期化を待ってそこから移動することはできません。
この遅延初期化を表現するよりクリーンな方法はありますか?