Go语言中的指针

Go语言中的指针相对简单,所谓的简单是因为Go语言的指针并不能进行运算,比如说C语言中,获取一个指针之后可以进行加法计算。Go语言中指针可以指向a,也可以指向b但是并不能像C语言一样,通过加1来指向另一个变量。

Go语言的参数传递是值传递还是引用传递?

Go语言只有值传递一种方式

也就是参数在传递时,是以拷贝的形式传递的,修改传递的参数并不影响原来的参数。所以在需要修改原本的值的时候就需要通过指针实现引用传递

举个例子,在go语言中交换两个参数的值:

func swap(a, b *int) {
	*a, *b = *b, *a
}
func main() {
	a, b := 3, 4
	swap(&a, &b)
	println(a, b) // 4 3
}

当然这只是举例子,如果真要交换两个变量的值的话,下面这种方式会更简单:

func swap(a, b int) (int, int) {
  return b, a
}

总结就是一句话!如果需要改变原来变量的值,那么需要传递指针!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值