函数
- func 定义函数
- 可以返回多个值
- 可以给返回的参数起名
func eval(a, b int, op string) (int, error) {
switch op {
case "+":
return a + b, nil
case "-":
return a - b, nil
case "/":
return div(a, b)
case "*":
return a * b, nil
}
return -1, fmt.Errorf("no supported op")
}
func div(a, b int) (q int, r error) {
return a / b, nil
}
func getNum(op func(int, int) int, a, b int) int {
return op(a, b)
}
func main() {
getNum(func(a int, b int) int {
return a + b
}, 1, 1)
}
func sum(numbers ...int) int{
return -1;
}
指针
func main() {
a := 2
var pa *int = &a
*pa = 3
fmt.Println(a)
}
- Go语言只有值传递一种方式
- 可以传递指针 实现引用传递
func main() {
a, b := 1, 2
swap(&a, &b)
}
func swap(a, b *int) {
*a, *b = *b, *a
}