2011-03-17 87 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