go 语言 数组、切片和映射区别
数组:
- 数组是固定长度的序列,其元素类型相同。
 - 数组的大小是类型的一部分,因此 [5]int 和 [10]int 是不同的类型。
 - 数组在内存中是连续的,因此访问数组元素非常快。
 - 由于数组长度是固定的,因此它们通常不如切片灵活。
 - 数组可以作为函数参数传递,但它们是按值传递的,这意味着如果函数修改了数组,原始数组不会被改变。
 
切片:
- 切片是对数组的抽象,提供了动态大小的、灵活的长度和容量的序列。
 - 切片引用底层数组的一部分或全部,并有自己的长度和容量。
 - 切片的长度可以改变(直到其容量),而容量是切片底层数组从切片开始位置到数组末尾的元素数量。
 - 切片在Go语言中非常常用,因为它们提供了数组的动态和灵活的行为,同时保持了高效的内存使用。
 - 切片在函数间传递时是按引用传递的,因此函数可以修改切片的内容并反映到原始切片上。
 
映射:
- 映射是无序的键值对集合。
 - 键(key)必须是可比较的(如字符串、整数等),而值(value)可以是任意类型。
 - 映射用于存储通过键快速访问的数据。
 - 映射在内存中的存储不是连续的,因此通过键访问元素通常比通过索引访问数组或切片元素要慢一些。
 - 映射在函数间传递时是按引用传递的。
 
已闻君,诸事安康。 遇佳人,不久婚嫁。 已闻君,得偿所想。料得是,卿识君望
                    
                
                
            
        
浙公网安备 33010602011771号