Go函數定義函數
func function_name( [parameter list] ) [return_types] { 函數體 }
2.同時這個規則也適用於變量的可見性,即首字母大寫的變量纔是全局的指針
func max(num1,num2 int) int { var result int if num1 > num1 { result = num1 }else { result = num2 } return result } func main() { var a int = 100 var b int = 200 var ret int ret = max(a,b) fmt.Println(ret) }
多返回值code
func swap(x,y string) (string,string) { return y,x } func main() { //a,b := swap("hello","world") a,_ := swap("hello","world") //只關注一個值可使用下劃線代替 fmt.Println(a) }
* 值傳遞 func main() { var a int = 100 var b int = 200 fmt.Println("交換前",a) fmt.Println("交換後",b) swap(a,b) fmt.Println("交換後",a) fmt.Println("交換後",b) } func swap(x,y int) int { var temp int temp = x x = y y = temp return temp } * 執行結果 交換前 100 交換後 200 交換後 100 交換後 200
* 引用傳遞 func main() { var a int = 100 var b int = 200 fmt.Println("交換前",a) fmt.Println("交換後",b) /* 調用 swap() 函數 &a 指向 a 指針,a 變量的地址 &b 指向 b 指針,b 變量的地址 */ swap(&a,&b) fmt.Println("交換後",a) fmt.Println("交換後",b) } func swap(x,y *int) int { var temp int temp = *x *x = *y *y = temp return temp } * 執行結果 交換前 100 交換後 200 交換後 200 交換後 100