函数声明
func 函数名(参数, 参数) 返回类型
func add(x int, y int) int
可以简写参数类型
func add(x, y int) int
函数类型称作函数签名,当两个函数的形参列表和返回列表相同时,认为这两个函数的类型是相同的。注意,与函数返回类型无关。
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(1, 2)) // 3
}
多返回值
一个函数可以返回不止一个结果,许多标准包内函数返回两个值,一个计算结果值,一个错误值,这样可以很方便得到出错信息。
我举一个除数为 0 的例子,如果为 0 则出错,然后打印错误信息
package main
import (
"errors"
"fmt"
"log"
)
var MyError = errors.New("the number is zero.")
func test(x, y float64) (float64, error) {
if y != 0 {
return x / y, nil
} else {
return 0, MyError
}
}
func main() {
res, err := test(1, 0)
if err != nil {
if errors.Is(err, MyError) {
log.Fatal(err)
}
} else {
fmt.Printf("the result is ", res)
}
}