Tôi khá mới đối với R, nhưng đến từ Đề án - cũng bị lốm đốm và có đóng cửa - tôi hy vọng có thể biến đổi các biến bên ngoài trong một bao đóng.Biến đổi một biến trong một bao đóng
Ví dụ, trong
foo <- function() {
s <- 100
add <- function() {
s <- s + 1
}
add()
s
}
cat(foo(), "\n") # prints 100 and not 101
Tôi mong chờ foo()
trở lại 101, nhưng nó thực sự trở lại 100:
$ Rscript foo.R
100
Tôi biết rằng Python có global
từ khóa để khai báo phạm vi của các biến (doesn 't làm việc với ví dụ này, mặc dù). R có cần một cái gì đó tương tự?
Tôi đang làm gì sai?
Cập nhật
Ah, là vấn đề mà trong add
tôi đang tạo ra một mới, biến cục bộ s
rằng bóng tối bên ngoài s
? Nếu vậy, làm cách nào tôi có thể biến đổi s
mà không tạo biến cục bộ?
Người kiểm duyệt có thể đóng dưới dạng bản sao hoặc bạn có thể tham gia và bỏ phiếu để đóng thành viên. –
@BondedDust Gotcha, tôi đã bỏ phiếu cho điều này để được đóng lại là tốt. Chỉ có vấn đề Googling cho nó --- Tôi thực sự không tìm thấy giải pháp cho đến khi tôi đăng ở đây. Vì vậy, các mod khác có thể quyết định phải làm gì với nó. – csl
Hai phiếu bầu khác và nó sẽ bị đóng bất kể sự chú ý của người điều tiết. Bạn có thể thấy rằng cơ sở lớp học tham chiếu là một mô hình phù hợp với phong cách lập trình của bạn và sẽ không bị xem là nguy hiểm bởi việc sử dụng R bình thường. Nó sử dụng các môi trường có tên và cho phép bạn có một số tính năng của các biến "toàn cục". –