Go学习Day7

函数

1.定义
定义格式如下

func functionName([parameter list]) [returnTypes]{
   //body
}

都是用func进行定义,返回值类型用returnTypes定义。
functionName是函数名。
返回值可以有,可以没有。

2.值传递和引用类型
值传递是指在函数调用过程中将实参拷贝一份到函数中,这样在函数中如果对参数进行修改,将不会影响到实参。
引用传递是指在函数调用过程中将实参的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实参。

3.可变参数函数
在go语言中也支持可变参数,但需要注意的是可变参数必须放在函数参数的最后一个,否则会报错。

4.返回值
Go语言支持函数具有多个返回值。在c和c++中主要是用结构体实现的。
例:

func div(a, b float64) (float64, error) {
	if b == 0 {
		return 0, errors.New("The divisor cannot be zero.")
	}
	return a / b, nil
}

5.闭包
闭包可以解释为一个函数与这个函数外部变量的一个封装。粗略的可以理解为一个类,类里面有变量和方法,其中闭包所包含的外部变量对应着类中的静态变量。

6.匿名函数

匿名函数如其名字一样,是一个没有名字的函数,除了没有名字外其他地方与正常函数相同。匿名函数可以直接调用,保存到变量,作为参数或者返回值。

例:

func main() {
	f := func() string {
		return "hello world"
	}
	fmt.Println(f())
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值