问题:
如何在R-码的范围内定义的局部变量。
例:
在C ++中下面的例子中定义了一个范围,并且该范围内的变量声明在外部代码是不确定的。
{
vector V1 = getVector(1);
vector V1(= getVector(2);
double P = inner_product(V1, V2);
print(P);
}
// the variable V1, V2, P are undefined here!
注:此代码只是为了说明这个想法。
这种做法的优点是:
- 保持全局命名空间干净;
- 简化的代码;
- 去除模糊度,特别是当一个变量被重新使用而不初始化。
在R,在我看来,这个概念只是存在的内部函数定义。 因此,为了再现前面的示例代码中,我需要做的是这样的:
dummy <- function( ) {
V1 = c(1,2,3);
V2 = c(1,2,3);
P = inner_product(V1, V2);
print(P);
}
dummy( );
# the variable V1, V2, P are undefined here!
或者,在一个更加模糊的方式,声明一个匿名函数防止函数调用:
(function() {
V1 = c(1,2,3);
V2 = c(1,2,3);
P = inner_product(V1, V2);
print(P);
})()
# the variable V1, V2, P are undefined here!
题
有没有更优雅的方式来创建本地变量?