Go語言學習(一)Go語言變數

2021-10-01 10:12:13 字數 1880 閱讀 7273

總結:此**中需要注意的點是

(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為返回型...