1.變數 範例程式碼 package main import "fmt" var x, y, z int var c, python, java bool func main() { fmt.Println(x, y, z, c, python, java) } 用 var 來定義變數,跟其他語言不大箱同的是,Golang 必須將型態軒告寫在後面。 #如果要同時宣告不同的變數,也可以用小括弧把變數括起來,但是一定要換行。 範例程式碼 package main import "fmt" var ( x int y int z int c bool python bool java bool ) func main() { fmt.Println(x, y, z, c, python, java) } 輸出結果 0 0 0 false false false ----------------------------------------------------------------------------------------------------------------------- 2.初始化變數 範例程式碼 package main import "fmt" var x, y, z int = 1, 2, 3 var c, python, java = true, false, "no!" func main() { fmt.Println(x, y, z, c, python, java) } 定意變數時可以直接賦予初始值,變數與賦予的值要互相對應。 如果有 initializer 的話,型別就可以省略;變數會直接取用 initializer 的類型 輸出結果 1 2 3 true false no! -------------------------------
1.函式 範例程式碼 package main import "fmt" func add(x int, y int) int { return x + y } func main() { fmt.Println(add(42, 13)) } 函數可以沒有參數或接受多個參數。 在這個例子中," add " 接受兩個 int 類型的參數。 注意類型在變數之後。 return 代表傳回的數值為何,這裡表示傳回 x + y 也就是 42+13 ,所以結果會是 55。 詳細的語法定義可以參考 官方文件 。 當兩個或多個連續的函數命名參數是同一類型,則除了最後一個類型之外,其他都可以省略。 舉例來說 x int, y int 可以被縮寫為 x, y int 也就是說上面的範例程式碼可以改成 package main import "fmt" func add(x, y int) int { return x + y } func main() { fmt.Println(add(42, 13)) } 兩種方法的輸出結果都會是相同的。 輸出結果 55 ----------------------------------------------------------------------------------------------------------------------- 2.多數值的返回 範例程式碼 package main import "fmt" func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) } 函數可以返回任意數量的返回值。 這個函數返回了兩個字串。 輸出結果 world hello --------------------