主页 > 其他  > 

Go入门之函数

Go入门之函数
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("异常") }

标签:

Go入门之函数由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Go入门之函数