go語言中 和 的區別 帶例子步步詳解

2021-10-07 13:05:39 字數 1310 閱讀 9100

在初學go語言的時候發現有時候用var宣告變數型別,但有時候**又經常直接用變數,不宣告,讓c++選手很是困惑,這是什麼操作。

因此我對比了下**中的異同,發現:

「=」的使用與其他語言相同,賦值操作,但是此處的變數必須提前宣告好型別,或者在宣告的同時賦值。「:=」的使用則類似於c++中的auto操作,自動匹配變數型別,省去了宣告變數型別操作,也就是你可以不宣告,在賦值使用的時候多加個冒號就可以了。

=

package main

import

"fmt"

func

main()

結果如下:

然後我們直接賦值試一試:

可以看到,報錯了,沒有定義a變數。

不要不求甚解,我們繼續想一下,既然「:=」有自動推導型別功能,那麼如果在先宣告型別的前提下,再用型別自動推導會發生什麼?

試一試就知道:

package main

import

"fmt"

func

main()

報錯了,沒有新的變數出現,也就是變數宣告重複了。所以不能先宣告後然後在用自動推導功能。

繼續看,編譯器報錯是沒有新的變數,那我們在左側加乙個新的變數呢?

試一試:

package main

import

"fmt"

func

main()

所以,怎麼使用就不用我多說了吧,自己意會就行了。

寫在最後:實踐出真知!每一門新語言的開始都是乙個溫故知新的過程,學會用舊語言的基礎學習新語言,用新語言的思路去理解舊語言,會收穫很多。

C語言中 和 的區別

實際執行的時候沒有區別,中間的內容都是乙個字串 include include 比較兩個字串的內容,輸出相同的字元,第二個字串中 通配任意字元,直到兩字串有相同的字元 請按照要求實現下列函式 void findinstr const char pin,const char pkey,char pou...

C語言中 和「」的區別

例如你使用的是turboc include 代表編譯時直接在turboc軟體設定指定的路徑 預設是turboc所在資料夾下的include資料夾 中尋找裡面是否有stdlib.h的庫檔案。如果有,直接載入 如果沒有,報錯 無法找到庫檔案 include stdlib.h 代表編譯時先尋找你正在編輯的...

C語言中 和 的區別

利用指標訪問成員是用 利用變數訪問成員用的是 一般情況下用 只需要宣告一百個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告乙個結構體的指標,度還要手動開闢乙個該結構體的記憶體,然後把返回的指標...