相关疑难解决方法(0)

":="有什么作用?

我已经看过:=在几个代码示例中使用过,但从未附带过相应的解释.如果不知道它的正确名称,就不可能谷歌使用它.

它有什么作用?

operators colon-equals

106
推荐指数
5
解决办法
7万
查看次数

44
推荐指数
2
解决办法
4259
查看次数

什么是R赋值运算符:= for?

通过深入研究R源代码(文件R-3.2.2/src/main/gram.y2836,2852)我发现R解析器/标记器认为这:=是一个LEFT_ASSIGNMENT标记.

但是当我尝试将它用作赋值运算符时R.3.2.2,
我有一个错误(无法找到:=...的函数)但是你可以看到R认为它是一个类似的赋值<-:

> myVar := 42
Erreur : impossible de trouver la fonction ":="
> :=
Erreur : unexpected assignment in ":="
> <-
Erreur : unexpected assignment in "<-"
Run Code Online (Sandbox Code Playgroud)

它是一个bug,还是:=需要从tokenizer源代码中删除令牌?

:=R中有关于运算符的过去的故事吗?

r assignment-operator data.table colon-equals

18
推荐指数
3
解决办法
4760
查看次数

三等号 R

我正在尝试创建一个检查严格相等性的函数,我想使用三重等号。一些背景:

> 3 == '3'
[1] TRUE
> FALSE == 0
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

上述所有检查都会返回,TRUE因为输入被强制转换为通用类型。但是我想检查严格的平等。该identical功能正是我所需要的。

> identical(3,'3')
[1] FALSE
> identical(FALSE, 0)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

现在我想以更简洁、更简洁的方式实现这一点。就像在 Javascript 中一样,我想使用三重等号。我写了这个函数:

`===` <- function(a,b){
  identical(a,b)
}
Run Code Online (Sandbox Code Playgroud)

然而,这并不像预期的那样:

> 3 === 3
Error: unexpected '=' in "3 ==="
Run Code Online (Sandbox Code Playgroud)

我错过了什么?谢谢

symbols equality r function

0
推荐指数
1
解决办法
254
查看次数