Hôm qua tôi đã học từ Bill Venables cách địa phương() có thể giúp tạo ra các chức năng tĩnh và các biến, ví dụ như,Địa phương() khác với các cách tiếp cận khác để đóng cửa trong R như thế nào?
example <- local({
hidden.x <- "You can't see me!"
hidden.fn <- function(){
cat("\"hidden.fn()\"")
}
function(){
cat("You can see and call example()\n")
cat("but you can't see hidden.x\n")
cat("and you can't call ")
hidden.fn()
cat("\n")
}
})
mà ứng xử như sau từ dấu nhắc lệnh:
> ls()
[1] "example"
> example()
You can see and call example()
but you can't see hidden.x
and you can't call "hidden.fn()"
> hidden.x
Error: object 'hidden.x' not found
> hidden.fn()
Error: could not find function "hidden.fn"
Tôi đã nhìn thấy này loại điều được thảo luận trong Static Variables in R, nơi một cách tiếp cận khác được sử dụng.
Ưu và nhược điểm của hai phương pháp này là gì?
Một mẫu khác mà 'cục bộ 'tạo thuận lợi là ghi nhớ. Có một ví dụ ở đâu đó trong The R Inferno. – otsaw
Suy nghĩ của bạn về trình thu thập thông tin là một singleton rất thú vị bởi vì một thay thế cho địa phương là ngay lập tức đánh giá một hàm ẩn danh mà không có đối số - một mẫu nhà máy có thể sử dụng một đóng trên url cơ sở. – hadley