簡素化された例では、フィールドPortfolio
内の個々の資産値を保持する参照クラスのオブジェクトがありholdings
ます。value
の個々の値を単純に合計することによって計算される追加のフィールドがありholdings
ます。
Portfolio <- setRefClass("Portfolio",
fields = list(holdings = "numeric",
value = function(v) {
sum(holdings)
})
)
スロットにデータを入力した直後に、スロットが計算さholdings
れることは明らかです。value
Portfolio$new(holdings =c(1055.43, 345.7))
Reference class object of class "Portfolio"
Field "holdings":
[1] 1055.43 345.70
Field "value":
[1] 1401.13
質問value
:で直接呼び出されている場合にのみ、フィールドの遅延オンデマンド評価を実現するために定義を書き直す方法はPortfolio$value
?