ฉันอยากจะถามชุมชน: เราจะตั้งค่าตัวแปรทั่วโลกในฟังก์ชั่นได้อย่างไร?
ฉันอยากจะถามชุมชน: เราจะตั้งค่าตัวแปรทั่วโลกในฟังก์ชั่นได้อย่างไร?
คำตอบ:
ในฐานะที่เป็นคำตอบของคริสเตียนกับassign()รายการมีวิธีที่จะกำหนดในสภาพแวดล้อมระดับโลก วิธีที่ง่ายกว่าสั้นกว่า (แต่ไม่ดีกว่า ... ติดกับการมอบหมาย) คือการใช้ตัว<<-ดำเนินการคือ   
    a <<- "new" 
ภายในฟังก์ชั่น
assignต้องการให้<<-?
                    <<-จะค้นหาเชนของสิ่งที่แนบมากับสภาพแวดล้อมโกลบอลและกำหนดให้กับตัวแปรที่ตรงกันตัวแรกที่พบ สมมุติฐานถ้าคุณมีฟังก์ชั่นที่f()ซ้อนกันในการปิดg()และaมีอยู่g()แล้วการใช้a <<-ในf()จะได้รับมอบหมายให้aในg()ไม่ได้อยู่ในสภาพแวดล้อมระดับโลก บ่อยครั้งนี่คือสิ่งที่คุณต้องการอย่างไรก็ตาม
                    ฉันพบโซลูชันสำหรับวิธีตั้งค่าตัวแปรส่วนกลางในรายการส่งเมลผ่านการกำหนด :
a <- "old"
test <- function () {
   assign("a", "new", envir = .GlobalEnv)
}
test()
a  # display the new value