autoload创建了一个对autoloader求值的承诺,并将其以名称存储在.AutoloadEnv中环境。什么时候R尝试求值name,autoloader运行,加载包,并在newpackage的环境中重新求值name。结果是R的行为与ifpackage加载时一样,但它不占用内存。
autoload(name, package, reset = FALSE, ...)
autoloader(name, package, ...)
.AutoloadEnv
.Autoloaded
name : 提供对象名称的字符串。
package : 提供包含对象的包的名称的字符串。
reset : 逻辑:供自动装弹机内部使用。
... : 库的其他参数。
require(stats)
autoload("interpSpline", "splines")
search()
ls("Autoloads")
.Autoloaded
x < - sort(stats::rnorm(12))
y < - x^2
is < - interpSpline(x, y)
search() ## now has splines
detach("package:splines")
search()
is2 < - interpSpline(x, y+x)
search() ## and again
detach("package:splines")