過去若您跟我一樣,是以 C、C#、Java 等程式語言為主,剛學習 Golang 可能會有些不適應。主要原因在於 Go 語言的變數宣告方式為 var [變數名稱] [資料型別],與過去 [資料型別] [變數名稱] 有所不同。個人在第一次寫 Golang 的時候,Visual Studio Code 直接呈現語法錯誤訊息,花了 5-10 分鐘才發現宣告變數方式有問題。本篇文章將會簡單介紹 Golang 變數,提供給有興趣的朋友參考。




變數宣告

Golang 的資料型態可以分成 string, int, bool, float64 map,屬於強行別的程式語言,其宣告方式可以分成 變數 (var) 與常數 (const),其變數可以進行操作,而常數則是經過宣告後,為固定的內容。常見變數宣告有下列二種方式:


Variable declaration

即為宣告變數型態與名稱,此時尚未指定任何值,其格式為 "var [變數名稱] [變數型態]"。您可以後續再指定值給此變數。您可以像下列程式範例中第 3-4 行逐一地宣告變數,也能像 7-10 行一次性宣告多個變數,後續在進行操作的時候再給予值。理所當然,您也能像 13 行一樣,宣告時指定內容值。

package main
var name string
var age int
/* same as above
var (
name string
age int
)
*/
var city string = "Taichung"
func main() {
name = "Duran Hsieh"
age = 36
}
view raw var2.go hosted with ❤ by GitHub



Short declaration

應該是 Golang 開發人員最常用且最容易閱讀的宣告方式,在宣告變數的同時直接指定值。可以逐一宣告,也能透過逗點分開方式一次宣告多個,其變數範例如下:

package main
import "fmt"
func main() {
name := "Duran Hsieh"
age := 36
/* same as above
name, age := "Duran Hsieh", 36
*/
fmt.Println(name)
fmt.Println(age)
}
view raw var1.go hosted with ❤ by GitHub


此種宣告方式相當簡顯易懂,但常常出現兩種錯誤使用:

1. 重複地宣告

2. 在 main 外直接指定值

package main
import "fmt"
age := 36; // sustax error: non-declaration statement outside function body
func main() {
name := "Duran Hsieh"
name := "Ina Lai" // no new variables on left side of :=
fmt.Println(name)
fmt.Println(age)
}
view raw var3.go hosted with ❤ by GitHub




常數宣告

常數宣告完成後,後續則不能進行操作。常數宣告方式如下:

package main
import "fmt"
const (
Monday = 1
Tuesday = 2
Wednesday = 3
)
func main() {
fmt.Println(Monday)
fmt.Println(Tuesday)
fmt.Println(Wednesday)
}
view raw const.go hosted with ❤ by GitHub