我在几个代码示例中看到:=
,但从未附带说明。如果不知道它的正确名称,就不可能谷歌使用它。
它做了什么?
答案 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)
分配通常允许变量保存不同的值 在其寿命和范围内的不同时期。但是,有些 语言(主要是严格的功能)不允许这样的 “破坏性”重新分配,因为它可能意味着非本地化的变化 州。 目的是强制执行参考透明度,即功能 这不依赖于某些变量的状态,而是产生 对于给定的一组参数输入,在任何一点上都有相同的结果 时间。
答案 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中,赋值和等式测试之间没有区别。