R 允许通过<-
和进行赋值=
。
尽管两个赋值运算符之间存在细微差别,但似乎有一个广泛的共识,即<-
比=
, as也更好,因为=
它也用作将值映射到参数的运算符,因此它的使用可能会导致模棱两可的陈述。下面举例说明了这一点:
> system.time(x <- rnorm(10))
user system elapsed
0 0 0
> system.time(x = rnorm(10))
Error in system.time(x = rnorm(10)) : unused argument(s) (x = rnorm(10))
事实上,Google 风格的代码不允许使用=
for assignment(请参阅对此答案的评论以获取相反的观点)。
我也几乎专门<-
用作赋值运算符。但是,上一句中的差不多就是这个问题的原因。在=
我的代码中充当赋值运算符时,它总是偶然的,如果它导致问题,通常很难发现。
我想知道是否有办法通过关闭分配并让 R 在任何时候用于分配=
时抛出错误。=
最佳情况下,这种行为只会发生在全局环境中的代码上,因为在附加的命名空间中很可能有代码=
用于分配并且不应该中断。
(这个问题的灵感来自与Jonathan Nelson的讨论)