Golang基础知识-04-函数

函数

使用func声明函数

func sum(p1, p2 int) int { // 相邻参数类型相同时,可合并声明参数类型
	return p1 + p2
}

func ff(p1 int, p2 string) (int, string) { // 多返回值的类型声明需要使用圆括号
	return p1, p2
}

函数可作参数

func ff(fn func() int) int { // 函数作形参
	return fn()
}
func main() {
	ff(func() int { return 100 }) // 匿名函数作实参
}

不定参数

func ff(s string, n ...int) { // 不定参数只能有一个,且必须是最后一个形参,本质上就是slice
	print(s)
	for _, v := range n {
		print(v)
	}
}
func main() {
	ff("test", 1, 2, 3, 4, 5) // 可以传不定个数的实参
	ff("test") // 不传实参的话,n的值为nil
}

返回值

func ff(p1 int, p2 string) (int, string) { // 函数可以返回多个返回值
	return p1, p2
}
func main() {
	i, s := 16, "abc"
	a, b := ff(i, s) // 使用多个参数接收返回值
	ff(i, s) // 可以不接收返回值
	c, _ := ff(i, s) // 但如果接收返回值,则所有返回值都需要接收。无用的返回值使用`_`忽略
	print(a, b, c)
}

多返回值可直接用作函数实参


import "strconv"

func conv(p1, p2 string) (int, int) { 
	num1, _ := strconv.Atoi(p1)
	num2, _ := strconv.Atoi(p2)
	return num1, num2
}
func sum(x, y int) int {
	return x + y
}
func main() {
	a, b := "123", "456"
	s := sum(conv(a, b)) // 多返回值直接作实参
	print(s)
}

隐式返回

func sum(x, y int) (sum int) { // 这里指定返回参数名
	sum = x + y
	return // 这里隐式返回指定的变量
}
func main() {
	s := sum(16, 32)
	print(s)
}
发布了8 篇原创文章 · 获赞 0 · 访问量 50

猜你喜欢

转载自blog.csdn.net/Landercy/article/details/104102010
今日推荐