Go:值类型、引用类型、指针
值类型,变量存的就是值本身:
int、float、bool、string、数组和struct
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。引用类型,变量存的是一个地址,这是地址存的才是值本身:
指针、slice、map、chan等
获取变量的地址,使用 &,比如: var a int,使用 &a 获取a的地址。
获取指针类型所指向的值,使用 *,比如:var *p int,使用 *p 获取p指向的值。
package main
import "fmt"
// 方式1:交换两个变量的值
func swap1(a, b *int) {
*a, *b = *b, *a
}
// 方式2:交换两个变量的值
func swap2(a, b int) (int, int) {
return b, a
}
func main() {
var i int = 10
var p *int = &i // *int代表指针,&a代表获取a的地址
*p = 20 // 给指针所指向的值赋值
fmt.Println(i) // 20
a, b := 11, 22
swap1(&a, &b)
fmt.Println(a, b) // 22 11
c, d := 33, 44
c, d = swap2(c, d)
fmt.Println(c, d) // 44 33
}
更多精彩

