在初學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 一樣。而用 則要宣告乙個結構體的指標,度還要手動開闢乙個該結構體的記憶體,然後把返回的指標...