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")
}
相关推荐
zhangkaixuan4567 分钟前
Flink 写入 Paimon 流程:Checkpoint 与 Commit 深度剖析
java·开发语言·微服务·flink·paimon
爱吃程序猿的喵9 分钟前
Spring Boot 常用注解全面解析:提升开发效率的利器
java·spring boot·后端
zyb_12345611 分钟前
NestJS 集成 RabbitMQ(CloudAMQP)实战指南
后端
hzbigdog22 分钟前
php的CSV大数据导入导出的通用处理类
大数据·后端·php
Tracy-2226 分钟前
广东专升本计算机C语言
c语言·开发语言
多多*32 分钟前
牛客周赛 Round 117 ABCDE 题解
java·开发语言·数据结构·算法·log4j·maven
liu****41 分钟前
13.POSIX信号量
linux·开发语言·c++·算法·1024程序员节
WZTTMoon44 分钟前
从 “完整对象” 视角看Spring 循环依赖
java·spring boot·后端·spring
间彧1 小时前
如何在CI/CD流水线中自动化实现镜像扫描和推送到Harbor?
后端
唆了蜜.1 小时前
ESLint: Expected indentation of * spaces but found *. (style/indent)
开发语言·javascript·vue·webstorm