總結:此**中需要注意的點是
(1)宣告變數時要注意中間的空格不能省略
(2)如果**寫的不規範,編譯時會自動調整成規範的格式,比如在編譯前**中的1,2之間沒有空格,但是在編譯後會自動出現
(3)在編寫**時,不用每次都刪除hello.exe檔案,因為在編譯main.go檔案時,會自動將其之前的進行覆蓋
第一種,指定變數型別,如果沒有初始化,則變數預設為零值。
以下幾種型別為 nil:
舉乙個例項:
總結:在go語言中,函式的基本組成為:關鍵字func、函式名、引數列表、返回值、函式體和返回語句,每乙個程式都包含很多的函式,函式是基本的**塊
第二種,根據值自行判定變數型別。
此處沒有定義變數d是什麼型別
第三種,省略var
注意:「=」左側如果沒有宣告新的變數,就產生編譯錯誤(就是說變數不能宣告已經宣告了的變數)
總結:此處發現了兩個問題
(1)就是也可以不匯入「fmt」,依舊可以進行輸出,可以使用小寫的print、println輸出,但是首字母大寫的無法使用,printf無法使用
(2)如果在main函式中定義了變數,那麼一定要進行輸出,否則會報錯undefined:g,h
如果您不平時不注意這些注意事項,那麼你可能會出現許多很莫名其妙的報錯,但是你個人會認為你自己是對的,因為從邏輯上面是沒有任何報錯的,可是你就是錯了,用濤總的一句話改變就是你懂不懂。
(1)如果你宣告了乙個區域性變數卻沒有在相同的**塊中使用它(當然了,全域性變數是允許宣告但不使用,而且同一型別的多個變數可以宣告在同一行),同樣會得到編譯錯誤,例如下面這個例子:
總結:如果變數首先被宣告了變數並設定了型別但是沒有設值,之後輸出此變數時是零值
(2)如果在相同的**塊中,我們不可以再次對於相同名稱的變數使用初始化宣告,例如a:=20就是不被允許的,編譯器也會報錯,報錯資訊為no new variables on left side of :=
但是a=20就是可以的,因為這個給相同的變數賦予乙個新的值
但是如果在定義前使用它,呢麼也會出現編譯錯誤的報錯
(3)多變數在同一行進行賦值
還有乙個""空白識別符號代表的是拋棄值,但是目前我還沒有研究好他是怎麼用的,大概的意思是,f=5,7中值「5」被拋棄
Go語言學習 一 變數
package main import fmt func main 變數的宣告 func declarevariable var v6 int 指標 var v7 map string int map,key為string型別,value為int型別 var v8 func a int int 變數...
Go語言學習筆記 變數
變數 使用關鍵字var定義變數,格式為 var 變數名 資料型別 值 對於未初始化的變數,編譯器會自動初始化。go語言支援推斷賦值,即如果給變數提供初始化值,可以省略變數型別。由編譯器自行推斷 go語言支援組賦值 var name string wangyijie 組宣告,賦值 var name w...
Go語言學習(1) 變數
1 宣告變數 go語言引入了關鍵字var,而類資訊放在變數名之後 如 func main 結構體 var k int 指標型別 var o map string int map,key為string型別,value為int型別 var p func a int int 函式,a為引數,int為返回型...