• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go:函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1.声明语法
	func 函数名 (参数列表) (返回值) {
		pass
	}
	1.func add() {
		pass
	}
	2.func add(a int, b int) (int,int) {
		pass
	}
	3.func add(a,b int,args...) int {
		pass
	}
     4.匿名函数

      func() {       fmt.Printf("func 1\n")       }()       func(x int) {       fmt.Printf("func 2, x is %d\n", x)       }(2)       a := func(a,b int) int {        return a+b       }(10,20)
	5.函数可以作为变量赋值/作为参数传入
		1)作为变量赋值
		func add(a,b int) int {
			return a + b
		}
		func main() {
			c := add
			sum := c(10,20)
			fmt.Println(sum) // 30
		}
		2)作为参数传入
		type add_func func(int , int) int //定义一种类型。add_func类型 参数两个int变量返回值为int
		func add(a,b int) int {
			return a + b
		}
		func operate(op add_func,a int, b int ) int {
			return op(a+b)
		}
		func main(){
			c := add
			sum := operate(c,100,200)
			fmt.Println(sum) //300
		}
2.参数传递方式
	1)值传递
	2)引用传递 //值所在内存的地址
	注意:
		无论是值传递还是引用传递,传递给函数的都是变量的副本(也就是深copy一份传递过去)。不过,值传递是值的拷贝,引用传递是地址的拷贝。
		map、slice、chan、指针、interface默认为引用的方式传递
3.命名返回值的名字:
	package main

	import "fmt"

	func calc(a, b int) (sum int, sub int) {
		sum = a + b
		sub = a - b
		return
	}
	func main() {
		_, sum := calc(100, 200)
		fmt.Println("sum=", sum)
	}
4.defer用途
	1)当函数返回时,执行defer语句。
	2)多个defer语句,按先进后出执行(实际是将defer语句的参数和资源压栈,函数结束时根据出栈顺序执行)
	3)defer语句的变量,在defer声明时就决定了
		package main

		import "fmt"

		func main() {
			i := 0
			defer fmt.Println(i) //0
			i = 10
			fmt.Println(i) //10
			/*
				10
				0
			*/
		}
	

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go语言基本介绍发布时间:2022-07-10
下一篇:
go结构体定义发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap