栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go语学习笔记 - 函数 | 从零开始Go语言

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go语学习笔记 - 函数 | 从零开始Go语言

目录

1、函数定义

2、多值返回

3、引用传递

4、函数作为实参使用

5、匿名函数

小结


学习笔记,写到哪是哪。

1、函数定义

函数的定义和java一样,使用{}进行包裹,并且要明确入参类型以及返回类型。

样例代码如下:

func min(num1, num2 int) int {
	if num1 <= num2 {
		return num1
	} else {
		return num2
	}
}

func main() {
	fmt.Printf("max = %dn", min(10, 12))
}

执行结果

max = 10

2、多值返回

和Python一样,可以多值返回。

样例代码如下

func swap(num1, num2 int) (int, string) {
	return num1 + num2, "haha"
}

func main() {
	a, b := swap(10, 12)
	fmt.Printf("swap = %d - %vn", a, b)
}

执行结果

swap = 22 - haha

3、引用传递

可以将参数的引用地址传递到函数,这样操作会影响到实际参数。

样例代码如下

func swap1(num1, num2 *int) {
	var temp int
	temp = *num1
	*num1 = *num2
	*num2 = temp
}


func main() {
	c, d := 10, 20
	swap1(&c, &d)
	fmt.Printf("swap1 c=%d,d=%dn", c, d)
}

执行结果

 swap1 c=20,d=10

4、函数作为实参使用

和python一样,可以在方法内部定义函数。

样例代码如下

func method(num1 int) int {
	getMax := func(x, y int) int {
		if x > y {
			return x
		} else {
			return y
		}
	}
	a := num1 - 10
	b := getMax(num1, a)
	fmt.Printf("value = %dn", b)
	return b
}

func main() {
	fmt.Printf("method = %dn", method(20))
}

执行结果

value = 20                         
method = 20

5、匿名函数

函数返回匿名函数,形成闭包。

样例代码如下

//匿名函数
func anonymous(num int) func() int {
	var a int
	a = num
	return func() int {
		a += 1
		return a
	}

}

func main() {
	flagNum := anonymous(100)
	fmt.Printf("1 -> %dn", flagNum())
	fmt.Printf("2 -> %dn", flagNum())
	fmt.Printf("3 -> %dn", flagNum())
	flagNum1 := anonymous(18)
	fmt.Printf("4 -> %dn", flagNum1())
	fmt.Printf("5 -> %dn", flagNum1())
}

执行结果

1 -> 101                           
2 -> 102                           
3 -> 103                           
4 -> 19                            
5 -> 20

小结

整体上都比较好理解。

  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号