在Go中,=
和:=
运营商有什么区别?他们似乎都是为了任务?这可能是显而易见的,但我似乎无法在文档中找到它.
使用分配给多个列的最佳方法是什么data.table
?例如:
f <- function(x) {c("hi", "hello")}
x <- data.table(id = 1:10)
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情(当然这种语法不正确):
x[ , (col1, col2) := f(), by = "id"]
Run Code Online (Sandbox Code Playgroud)
为了扩展它,我可能有很多列的名称存储在一个变量(比如说col_names
)中,我想这样做:
x[ , col_names := another_f(), by = "id", with = FALSE]
Run Code Online (Sandbox Code Playgroud)
做这样的事的正确方法是什么?
我已经看过:=
在几个代码示例中使用过,但从未附带过相应的解释.如果不知道它的正确名称,就不可能谷歌使用它.
它有什么作用?
这里发生了什么事?
package main
import "fmt"
func main() {
myArray :=[...]int{12,14,26} ;
fmt.Println(myArray)
myArray :=[...]int{11,12,14} //error pointing on this line
fmt.Println(myArray) ;
}
Run Code Online (Sandbox Code Playgroud)
它会抛出一个错误
no new variables on left side of :=
Run Code Online (Sandbox Code Playgroud)
我正在做的是将值重新分配给已声明的变量.
data.table
对象现在有一个:=运算符.是什么让这个运算符与所有其他赋值运算符不同?此外,它的用途是什么,它的速度有多快,什么时候应该避免?
对于Make中的变量赋值,我看到:=和=运算符.他们之间有什么区别?
我只知道非常基本的makefile
语法,并且正在阅读另一个项目makefile
并且遇到:=
了宏声明.他们为什么要用它?
换句话说,两者之间是否有任何区别
MYMACRO = hi i'm a macro
Run Code Online (Sandbox Code Playgroud)
和
MYMACRO := hi i'm a macro
Run Code Online (Sandbox Code Playgroud)
?
=
和:=
Scala有什么区别?
我已广泛搜索"scala colon-equals",但无法找到任何确定的内容.
data.table引入了:=运算符.为什么不超载< - ?
PL/pgSQL的文档说,变量的声明和赋值完成:=
.但是简单,更短,更现代 (见脚注) =
似乎按预期工作:
CREATE OR REPLACE FUNCTION foo() RETURNS int AS $$
DECLARE
i int;
BEGIN
i = 0;
WHILE NOT i = 25 LOOP
i = i + 1;
i = i * i;
END LOOP;
RETURN i;
END;
$$ LANGUAGE plpgsql;
> SELECT foo();
25
Run Code Online (Sandbox Code Playgroud)
请注意,Pl/pgSQL可以清楚地区分分配和比较,如行中所示
WHILE NOT i = 25 LOOP
Run Code Online (Sandbox Code Playgroud)
所以,问题是:
=
代替的已知后果:=
?编辑/脚注:
请使用" 简短,不完整和错误的编程语言历史 "中的"更现代"部分:
1970年 - Niklaus Wirth创建了Pascal,一种程序语言.批评者立即谴责Pascal,因为它使用"x:= x + y"语法而不是更熟悉的类C"x = x + y".尽管C还没有被发明,但这种批评仍在发生. …
colon-equals ×10
data.table ×3
r ×3
gnu-make ×2
go ×2
makefile ×2
dataframe ×1
operators ×1
plpgsql ×1
postgresql ×1
scala ×1
syntax ×1
variables ×1