È possibile avere campi membri privati all'interno di una classe di riferimento R. Giocando con alcuni degli esempi online che ho:Membri privati nella classe di riferimento R
> Account <- setRefClass( "ref_Account"
> , fields = list(
> number = "character"
> , balance ="numeric")
> , methods = list(
> deposit <- function(amount) {
> if(amount < 0) {
> stop("deposits must be positive")
> }
> balance <<- balance + amount
> }
> , withdraw <- function(amount) {
> if(amount < 0) {
> stop("withdrawls must be positive")
> }
> balance <<- balance - amount
> }
> ))
>
>
> tb <- Account$new(balance=50.75, number="baml-029873") tb$balance
> tb$balance <- 12
> tb$balance
Odio il fatto che posso aggiornare la bilancia direttamente. Forse che il vecchio OO puro in me, mi piacerebbe davvero essere in grado di rendere l'equilibrio privato, almeno non impostabile dall'esterno della classe.
Pensieri
Il pacchetto/framework R6 ha campi privati e metodi compilati (e si dice che siano più performanti). – petermeissner