Có thể có các trường thành viên riêng bên trong lớp tham chiếu R không. Chơi với một số ví dụ trực tuyến tôi có:Các Thành viên Riêng tư trong R Lớp Tham chiếu
> 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
Tôi ghét thực tế tôi có thể cập nhật số dư trực tiếp. Có lẽ OO tinh khiết cũ trong tôi, tôi thực sự muốn có thể làm cho sự cân bằng riêng tư, ít nhất là không thể định cư từ bên ngoài lớp học.
Suy nghĩ
Gói/khung R6 có các trường và phương thức riêng tư được xây dựng (và được cho là có hiệu suất cao hơn). – petermeissner