Go入门之函数
- 其他
- 2025-08-27 01:57:01

func subn1(x, y int) int { sub := x - y return sub }
函数参数简写,可以省略前边的,和后边的类型一样
func addn1(x ...int) int { sum := 0 for _, v := range x { sum += v } return sum }求可变参数的核,表示传参的个数不确定
func addn1(x int, y ...int) int { sum := 0 for _, v := range y { sum += v } x=sum return x }返回值命名法
func calc1(x, y int) (sum int, sub int) { sum = x + y sub = x - y return }自定义函数类型
func add(x, y int) int { return x + y } func main() { var c calc c = add fmt.Printf("%T\n", c) fmt.Println(c(10, 5)) }函数作为另一个函数的参数并且函数作为返回值
func add(x, y int) int { return x + y } type calcType func(int, int) int func calc1(x, y int, cb calcType) int { return cb(x, y) } func main() { sum := calc1(5, 10, add) fmt.Println(sum) }匿名自执行函数
var fn = func(x, y int) int { return x * y } fmt.Println(fn(2, 3))也可以接收参数
func(x, y int) { fmt.Println(x + y) }(10, 20)函数的闭包,函数里面嵌套一个函数,最后返回里面的函数。可以作用局部变量常驻内存,不污染全局
********************
defer 延迟执行改语句 panic抛出一个异常 ,recover接异常 必须在defer中
func f() { defer func() { err := recover() if err != nil { fmt.Println(err) } }() panic("异常") }上一篇
如何安装Hadoop