Next: , Previous: Environments and variable lookup, Up: Environments and variable lookup



1.2.1 搜索路径

S 有一个叫 `搜索路径'(search path)的概念:一个`变量'的查找会通向( 可能通过一系列的框架)`会话框架',`工作目录',然后是搜索路径。 搜索路径是一系列含有系统函数的数据库 (如search()返回的结果)。其中,系统函数在路径末端不是必须的,因为 默认状态下,包的等价物会被加载末端。

R在搜索路径上和S有不同之处的。R的搜索路径 (也是通过search()返回的)先包括全局环境(就是用户工作空间) ,随后是被绑定的环境,最后是基础环境。注意, 和 S 不同的是,它不可能在工作空间之前或基础环境之后 绑定环境的。

但是,变量查找的概念在R里面更加通用,因此,本小节的标题里面使用复数 1。 既然环境有闭包,从任何环境开始,通过查看它的框架, 它的闭包等的框架创建搜索路径。 由于死循环式不允许的,这个过程最终都会停掉的: 在 R 2.2.0 之前,它总是在基础环境时停掉,但现在 它既可以在基础环境也可以在空环境时停掉。 (总是在空环境时停掉在概念上比较简单,但在基础环境时候 停掉则性能上比较优化的策略)。 因此`搜索路径'描述的是搜索达到全局环境时采用的环境链表。


Footnotes

[1] 指的是`Search paths'