2011-03-17 88 views
89

我见过:=在几个代码示例中使用,但没有附带说明。如果不知道它的正确名称,就不可能在谷歌中使用它。“:=”做什么?

它是做什么的?

+11

在什么语言? – Beta 2011-03-17 20:17:00

+3

您通常使用':='当你定义的东西,把它从常规变量的变化..分开什么编程语言,我们谈论的? – svens 2011-03-17 20:18:03

+2

它是用于分配的PL/SQL。但是,如果采用不同的语言,那么答案就不能保证是真的 - 那么哪种语言就是这样的例子呢? – Andrew 2011-03-17 20:18:25

回答

83

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

在计算机编程语言,等号通常号表示任一个布尔运算符来测试值相等(例如,如在帕斯卡或艾菲尔),这与在数学符号的用法一致,或一个赋值运算符(例如像C语言中那样)。作出前一种选择的语言通常使用冒号等于(:=)或≔来表示其赋值运算符。做出后一种选择的语言通常使用双等号(==)来表示它们的布尔相等运算符。

注:我发现这个通过搜索colon equals operator

+40

具有讽刺意味的是,当搜索“冒号等于运算符”时,此答案现在位于维基百科上方。 – nighthawk454 2015-02-19 18:59:21

+4

如果我们继续输入'结肠等于operator',我们的工作魔术对谷歌的搜索引擎优化,使这个顶部结果 – ATLUS 2016-02-04 07:23:46

4

某些语言使用:=充当赋值运算符。

+2

如PostgreSQL – TigOldBitties 2011-10-19 19:21:32

+0

@TigOldBitties,会不会'='工作? – Pacerier 2015-04-01 12:44:59

+0

@Pacerier看到这个帖子http://stackoverflow.com/questions/7462322/the-forgotten-assignment-operator-and-the-commonplace至于为什么回答你的问题既可以是“是”和“否”。 – TigOldBitties 2015-04-02 18:26:46

0

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

a := 45; 

它也可能在其他语言,以及可能在类似的用途。

0

在很多CS书,它作为赋值运算符,从平等操作=分化。然而,在许多高级语言中,赋值为=,等于==

41

这是赋值运算符帕斯卡,并经常用于证明和伪代码。这与C语言中的=是一样的。

历史上,计算机科学论文使用=进行等式比较,进行赋值。 Pascal使用:=来表示难以左右的箭头。 C走向不同的方向,而是决定运营商===

19

在静态类型语言Go中:=是初始化和分配的一个步骤。这样做是为了允许以编译语言进行解释式创建变量。

// Creates and assigns 
answer := 42 

// Creates and assigns 
var answer = 42 
-1

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

使用C语言开始使用等于赋值和双等于比较的奇怪惯例。

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

+0

ASCII码'60'是'<' – 2016-04-14 23:21:22

+0

如果他们想它贴近左箭头,他们可以使用'像Haskell一样。他们并没有试图去接近用'左箭头:=',他们使用的数学“被定义为”运营商: http://mathworld.wolfram.com/Defined.html – Variadicism 2016-04-17 08:46:36

+1

老古警报:< - 在Haskell中不是任务。 Haskell没有以Pascal,Ada等方式进行破坏性分配。< - 是参数替换的do-notation语法的一部分。这更类似于在子程序调用中将值代入参数的过程。 – Michael 2016-04-20 10:41:05