当前位置: 技术文章>> go中的引用类型详细介绍与代码示例

文章标题:go中的引用类型详细介绍与代码示例
  • 文章分类: 后端
  • 10793 阅读
文章标签: go go基础

在Go语言中,引用类型(Reference Types)指的是指针类型、切片(Slice)、映射(Map)、通道(Channel)和函数类型。这些类型都是引用类型的示例,它们与基本类型(如整数、浮点数和布尔值)的主要区别在于它们是通过引用来存储值的,而不是直接存储值。

1.指针类型(Pointer):
指针是一种特殊的数据类型,它存储了一个变量的内存地址。通过使用指针,可以在不直接访问变量的情况下,间接地访问和修改该变量的值。

代码示例:


package main



import "fmt"  



func main() {

var num int = 42  

var numPtr *int = &num // 创建指向 num 的指针  



fmt.Println("num:", num)

fmt.Println("numPtr:", *numPtr) // 访问指针指向的值  



*numPtr = 99 // 通过指针修改变量的值  

fmt.Println("num:", num)

}

输出结果:


num: 42  

numPtr: 42  

num: 99

2.切片(Slice):
切片是对数组的抽象,它提供了一种动态长度的、可变长的序列类型。切片由底层的数组和三个属性组成:长度、容量和指向底层数组的指针。

代码示例:


package main



import "fmt"  



func main() {

var slice1 []int = []int{1, 2, 3, 4, 5}

var slice2 []int = make([]int, 3, 5) // len=3, cap=5  

slice2[0] = 10  

slice2[1] = 20  

slice2[2] = 30  



fmt.Println("slice1:", slice1) // 输出: [1 2 3 4 5]  

fmt.Println("slice2:", slice2) // 输出: [10 20 30]  

}


推荐文章