Tôi đang tìm hiểu các hướng dẫn, tôi muốn hỏi cộng đồng: Làm thế nào chúng ta có thể đặt các biến toàn cục bên trong một hàm?
Tôi đang tìm hiểu các hướng dẫn, tôi muốn hỏi cộng đồng: Làm thế nào chúng ta có thể đặt các biến toàn cục bên trong một hàm?
Câu trả lời:
Như câu trả lời của Christian với các assign()
chương trình, có một cách để phân công trong môi trường toàn cầu. Một cách đơn giản hơn, ngắn hơn (nhưng không tốt hơn ... gắn bó với gán) là sử dụng <<-
toán tử, nghĩa là
a <<- "new"
bên trong chức năng.
assign
ưa thích <<-
?
<<-
sẽ tìm kiếm chuỗi các vỏ bọc cho đến môi trường toàn cầu và gán cho biến phù hợp đầu tiên mà nó tìm thấy. Theo giả thuyết, nếu bạn có một hàm f()
lồng nhau trong một kết thúc g()
và a
tồn tại trong g()
, sau đó sử dụng a <<-
trong f()
sẽ gán cho a
trong g()
, không phải đối với môi trường toàn cầu. Thông thường, đây là những gì bạn muốn, tuy nhiên.
Tôi đã tìm thấy một giải pháp cho cách đặt biến toàn cục trong bài đăng danh sách gửi thư qua gán :
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value