Odpowiedzi:
Jak assign()
pokazuje odpowiedź Christiana , istnieje sposób na przypisanie w globalnym środowisku. Prostszym, krótszym (ale nie lepszym ... trzymaj się przypisania) sposobem jest użycie <<-
operatora, tj
a <<- "new"
wewnątrz funkcji.
assign
preferowane <<-
?
<<-
przeszuka łańcuch załączników do środowiska globalnego i przypisze do pierwszej pasującej zmiennej, którą znajdzie. Hipotetycznie, jeśli masz funkcję f()
zagnieżdżoną w zamknięciu g()
i a
istnieje w nim g()
, to użycie a <<-
in f()
spowoduje przypisanie do a
in g()
, a nie do środowiska globalnego. Jednak często tego właśnie chcesz.
Znalazłem rozwiązanie, jak ustawić zmienną globalną w postach na liście mailingowej za pomocą przypisania :
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value