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")
}
相关推荐
短剑重铸之日15 分钟前
SpringBoot声明式事务的源码解析
java·后端·spring·springboot
JIngJaneIL20 分钟前
基于springboot + vue房屋租赁管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
期待のcode41 分钟前
Java的抽象类和接口
java·开发语言
wadesir1 小时前
Go语言中高效读取数据(详解io包的ReadAll函数用法)
开发语言·后端·golang
千寻技术帮1 小时前
10422_基于Springboot的教务管理系统
java·spring boot·后端·vue·教务管理
Victor3561 小时前
Hibernate(12)什么是Hibernate的实体类?
后端
Victor3561 小时前
Hibernate(11)什么是Hibernate的持久化上下文?
后端
小高不明2 小时前
前缀和一维/二维-复习篇
开发语言·算法
龘龍龙2 小时前
Python基础(八)
开发语言·python
期待のcode2 小时前
@RequestBody的伪表单提交场景
java·前端·vue.js·后端