1. 程式人生 > >Go 語法注意點

Go 語法注意點

1.當識別符號(包括常量、變數、型別、函式名、結構欄位等等)以一個大寫字母開頭,如:Group1,那麼使用這種形式的識別符號的物件就可以被外部包的程式碼所使用(客戶端程式需要先匯入這個包),這被稱為匯出(像面嚮物件語言中的 public);識別符號如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的(像面嚮物件語言中的 protected )。 2.在 Go 程式中,一行代表一個語句結束。每個語句不需要像 C 家族中的其它語言一樣以分號 ; 結尾,因為這些工作都將由 Go 編譯器自動完成。 如果你打算將多個語句寫在同一行,它們則必須使用 ; 人為區分,但在實際開發中我們並不鼓勵這種做法。 3.Go 語言中變數的宣告必須使用空格隔開,在變數與運算子間加入空格,程式看起來更加美觀,如:fruit = apples + oranges; 4.Go 程式是通過 package 來組織的。 只有 package 名稱為 main 的包可以包含 main 函式。 一個可執行程式有且僅有一個 main 包。 通過 import 關鍵字來匯入其他非 main 包。 5.需要注意的是 { 不能單獨放在一行。 6.我們知道可以在變數的初始化時省略變數的型別而由系統自動推斷,宣告語句寫上 var 關鍵字其實是顯得有些多餘了,因此我們可以將它們簡寫為 a := 50 或 b := false。 a 和 b 的型別(int 和 bool)將由編譯器自動推斷。 這是使用變數的首選形式,但是它只能被用在函式體內,而不可以用於全域性變數的宣告與賦值。使用操作符 := 可以高效地建立一個新的變數,稱之為初始化宣告。 7.如果在相同的程式碼塊中,我們不可以再次對於相同名稱的變數使用初始化宣告,例如:a := 20 就是不被允許的,編譯器會提示錯誤 no new variables on left side of :=,但是 a = 20 是可以的,因為這是給相同的變數賦予一個新的值。 如果你在定義變數 a 之前使用它,則會得到編譯錯誤 undefined: a。 如果你聲明瞭一個區域性變數卻沒有在相同的程式碼塊中使用它,同樣會得到編譯錯誤。 8.如果你想要交換兩個變數的值,則可以簡單地使用 a, b = b, a,兩個變數的型別必須是相同。 空白識別符號 _ 也被用於拋棄值,如值 5 在:_, b = 5, 7 中被拋棄。 _ 實際上是一個只寫變數,你不能得到它的值。這樣做是因為 Go 語言中你必須使用所有被宣告的變數,但有時你並不需要使用從一個函式得到的所有返回值。 並行賦值也被用於當一個函式返回多個返回值時,比如這裡的 val 和錯誤 err 是通過呼叫 Func1 函式同時得到:val, err = Func1(var1)。