2

簡素化された例では、フィールド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?

4

1 に答える 1