在一些编程语言中,我看到(例如):
x := y
这个 :=
运算符通常被称为什么,它是用来做什么的?
在一些编程语言中,我看到(例如):
x := y
这个 :=
运算符通常被称为什么,它是用来做什么的?
:=
表示赋值,这种语法在后来的编程语言中得以延续,例如Pascal、Modula-2等。 - rossum这是一个即将在Python 3.8中推出的新操作符,实际上在BDFL Guido van Rossum早期退休中扮演了一个角色。
正式地说,该操作符允许所谓的“赋值表达式”。非正式地说,该操作符被称为“海象操作符”。
它允许在评估表达式的同时进行赋值。
因此,这个:
env_base = os.environ.get("PYTHONUSERBASE", None)
if env_base:
return env_base
可以简化为:
if env_base := os.environ.get("PYTHONUSERBASE", None):
return env_base
https://www.python.org/dev/peps/pep-0572/#examples-from-the-python-standard-library
我通常在伪代码中看到这个符号,它意味着赋值。因此 x := y 表示“将 x 的值设置为 y 的值”,而 x = y 表示“x 的值是否等于 y 的值?”
INT the answer = 42;
表示“答案”被声明为等于42(即一个常量值)。在INT the answer:= 42;
中,“答案”被声明为变量,并最初被赋予值42。还有其他赋值符号,例如+:=
,发音为“加并变成”; x +:= y
将y添加到x的当前值中,并将结果存储在x中。(空格没有意义,因此可以将其插入“into”标识符中,而无需处理下划线)=
用于变量赋值,如果单独出现,不应该被视为数学上的等号。在一些编程语言中,如Java和Bash,相等性是通过 ==
进行测试的。PL/I有=
和:=
两种赋值符号。 =
用于赋值和比较 - 编译器会根据上下文尝试确定你的意图。如果编译器错误地将赋值解释为比较,你可以使用:=
来强制执行赋值。
例如,考虑x=y=0;
在C语言中(举个例子),这意味着“将0分配给y,然后将该结果(也是0)分配给x。”
在PL/I中,它的意思是将y与0进行比较,然后将该比较的布尔结果分配给x(即相当于在类似C的语言中使用x = y == 0;
)。如果你(与PL/I的设计者不同,理智地)想要将其解释为“将0分配给x和y”,你应该使用x = y := 0;
(或x := y := 0;
)。
:= 表示“设置为相等” 一个具有语法的赋值
v := expr 将变量«v»的值设置为从表达式«expr»获得的值。
例子: X := B 将 X 的定义设置为 B 的值