R: 如何理解变量和环境的Lexical Scoping Rule

本文详细探讨了R语言中的Lexical Scoping Rule,即词法作用域规则,以及它如何与环境机制相互作用。通过实例解析,读者将了解变量查找的层次以及闭包的概念,从而更好地掌握R中函数内部和外部变量的交互方式。
摘要由CSDN通过智能技术生成

非IT出身,看到Scoping Rule神马的是非常头疼的,尤其是需要涉及到Function的嵌套的时候,很容易将不同environment种的变量弄混淆,还是自己动手实践一下比较好。
在一个Function中,对一个变量的lexical scoping rule的检索次序是,先检查本Function中的environment,如果能找到该变量,则返回该变量,如果不能,则检索这个Function被创建(不是被调用)的Environment,以此类推,一直到检索Global Environment。

写了2段code,在写code之前,先提出两个问题:
1. a和全局环境各存在一个环境e,当a调用b时,b中的e$x, e$y和e$z如何检索?
2. 全局环境变量的赋值符号 " <<- "如何发挥作用?

第一段:b函数在a函数创建,a函数及global env.各创建一个环境变量e

# Chunk 1: 
> a <- function(x){
    e <- new.env()
    e$x <- 111
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值