6.golang函数

函数是执行特定任务的代码块。函数接受输入,对输入执行一些计算,然后生成输出。

函数声明

在 go 中声明函数的语法是:

复制代码
func name(parameter) (result-list){
    //body
}

函数声明以func关键字开头,后跟name(函数名)。在括号中指定参数,后面为函数返回值result-list。参数和返回类型在函数中是可选的。因此,以下语法也是有效的函数声明。

复制代码
func name() {  
    //body
}

单返回值函数

复制代码
func plus(a, b int) (res int) {
	c := a + b
	return c
}

func main() {
	a, b := 90, 6
	sumAll := plus(a, b)
	fmt.Println("sum", sumAll)
}

上面程序,函数plus 接受两个 int 类型的值,并返回最终和。输出结果如下:sum 96

多返回值函数

复制代码
func plus(a, b int) (int, int) {
	c := a + b
	d := a - b
	return c, d
}

func main() {
	a, b := 90, 6
	sumAll, subAll := plus(a, b)
	fmt.Println("sum", sumAll)
	fmt.Println("sub", subAll)
}

输出结果如下:

复制代码
sum 96
sub 84

命名返回值

如果返回值被命名,相当由于在函数的第一行被声明为变量。

复制代码
func plus(a, b int) (res int) {
	res = a + b
	return
}

func main() {
	a, b := 90, 6
	sumAll := plus(a, b)
	fmt.Println("sum", sumAll)
}

输出结果如下:sum 96

参数可变函数

复制代码
func sum(nums ...int) (res int) {
	fmt.Println("len of nums is : ", len(nums))
	res = 0
	for _, v := range nums {
		res += v
	}
	return
}

func main() {
	fmt.Println(sum(1))
	fmt.Println(sum(1, 2))
	fmt.Println(sum(1, 2, 3))
}

输出结果如下:

复制代码
len of nums is :  1
1
len of nums is :  2
3
len of nums is :  3
6

匿名函数

复制代码
func main() {
	func(name string) {
		fmt.Println(name)
	}("初辰ge")
}
相关推荐
踏浪无痕6 分钟前
从 Guava ListenableFuture 学习生产级并发调用实践
后端·面试·架构
❀͜͡傀儡师9 分钟前
SpringBoot 扫码登录全流程:UUID 生成、状态轮询、授权回调详解
java·spring boot·后端
可观测性用观测云18 分钟前
观测云在企业应用性能故障分析场景中的最佳实践
后端
一 乐23 分钟前
酒店预约|基于springboot + vue酒店预约系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
世转神风-1 小时前
qt-kits-警告:No C++ compiler,无法正常解析工程项目.pro文件
开发语言·c++
翔云 OCR API1 小时前
承兑汇票识别接口技术解析与应用实践
开发语言·人工智能·python·计算机视觉·ocr
元周民1 小时前
matlab求两个具有共根的多项式的所有共根(未详细验证)
开发语言·matlab
我是谁的程序员1 小时前
iOS CPU 占用率在性能问题中的表现形式
后端
一灰灰1 小时前
开发调试与生产分析的利器:MyBatis SQL日志合并插件,让复杂日志秒变可执行SQL
chrome·后端·mybatis