追加メモリが必要な場合にクリアできるフィールドを指定します。
説明
{if-non-null value = my-obj.my-weak-field then {do-something-with value} }
例
例: 計算された値をキャッシュするためのウィーク フィールドの使用 | |
{define-class CachedDateString field public constant date:DateTime = {DateTime} field private weak _date-str:#String {getter public {date-str}:String {return {if-non-null str = self._date-str then || Return previously computed value. str else || Compute and cache new value before || returning it. let str:String = {format "%s", self.date} set self._date-str = str str } } } } {let d:CachedDateString = {CachedDateString}} {value d.date-str}{br} {value d.date-str}{br} {garbage-collect} || value may be recomputed after collection {value d.date-str} |