“:=”有什么作用?

时间:2011-03-17 20:15:02

标签: operators colon-equals

我在几个代码示例中看到:=,但从未附带说明。如果不知道它的正确名称,就不可能谷歌使用它。

它做了什么?

10 个答案:

答案 0 :(得分:96)

http://en.wikipedia.org/wiki/Equals_sign#In_computer_programming

  

在计算机编程语言中,等号通常表示用于测试值相等性的布尔运算符(例如,如Pascal或Eiffel中),这与符号在数学中的用法一致,或者表示赋值运算符(例如在C中)类似的语言)。进行前一选择的语言通常使用冒号等于(:=)或≔来表示其赋值运算符。后者选择的语言通常使用双等号(==)来表示它们的布尔等式运算符。

注意:我是通过搜索colon equals operator

找到的

答案 1 :(得分:44)

它是Pascal中的赋值运算符,通常用于证明和伪代码。它与C语言中的=相同。

历史上,计算机科学论文使用=进行平等比较,使用进行作业。 Pascal使用:=代表难以选择的左箭头。 C采用了不同的方向,而是决定使用===运算符。

答案 2 :(得分:22)

在静态类型语言Go :=中,只需一步即可初始化和分配。这样做是为了允许在编译语言中进行类似解释的创建。

// Creates and assigns
answer := 42

// Creates and assigns
var answer = 42

答案 3 :(得分:4)

某些语言使用:=作为赋值运算符。

答案 4 :(得分:4)

来自世界各地的编程语言的另一种解释来自 Wolfram Mathworld ,等:

如果A和B在定义上相等(即A定义为B),那么这被象征性地写为A = B,A:= B,或者有时A≜B。 < / p>

http://mathworld.wolfram.com/Defined.html

https://math.stackexchange.com/questions/182101/appropriate-notation-equiv-versus

答案 5 :(得分:0)

这是赋值运算符的旧(pascal)语法。它会像这样使用:

a := 45;

它也可能在其他语言中,可能也有类似用途。

答案 6 :(得分:0)

在很多CS书中,它被用作赋值运算符,以区别于等于运算符=。但是,在许多高级语言中,赋值为=,等式为==

答案 7 :(得分:0)

它就像一个没有使用小于符号的箭头&lt; =所以每个人都已经说过“赋值”运算符。清楚地说明了与等价的逻辑运算符相对的位置。

在数学中它就像是等于但是A:= B意味着A被定义为B,三重等于可以用它来表示它的定义相似且相等,但并不总是相同的。

无论如何,我指向那些可能在发明它的人心目中的其他引用,但它实际上只是平面等于并且等于(或者可能容易与=&lt;)混淆并且新的定义分配是必要的,这是最有意义的。

历史参考:我首先在SmallTalk中看到了原始对象语言,其中Apple的SJ只复制了Windows的一部分,而微软的BG则进一步淡化了它们(单线程)。最终,NeXT的SJ从施乐PARC获得了第二个更重要的教训,成为了目标C.

好吧无论如何他们只是从ALGOL 1958那里拿了结肠平等的辅助操作员,后来被Pascal推广

https://en.wikipedia.org/wiki/PARC_(company)

https://en.wikipedia.org/wiki/Assignment_(computer_science)

  

分配通常允许变量保存不同的值   在其寿命和范围内的不同时期。但是,有些   语言(主要是严格的功能)不允许这样的   “破坏性”重新分配,因为它可能意味着非本地化的变化   州。   目的是强制执行参考透明度,即功能   这不依赖于某些变量的状态,而是产生   对于给定的一组参数输入,在任何一点上都有相同的结果   时间。

https://en.wikipedia.org/wiki/Referential_transparency

答案 8 :(得分:0)

对于VB.net,

构造函数(在这种情况下,Me = Java中的this):

Public ABC(int A, int B, int C){
Me.A = A;
Me.B = B;
Me.C = C;
}

创建该对象时:

new ABC(C:=1, A:=2, B:=3)

然后,不管参数的顺序如何,该ABC对象的A = 2,B = 3,C = 1

所以,对其他人来说,这是很好的做法,可以有效地阅读您的代码

答案 9 :(得分:-1)

Colon-equals用于Algol及其后代,如Pascal和Ada,因为它与ASCII一样接近左箭头符号。

使用equals进行赋值和使用double-equals进行比较的奇怪惯例是用C语言开始的。

在Prolog中,赋值和等式测试之间没有区别。