Go语言入门13---数组Array|Go主题月

175 阅读1分钟

数组Array

  1. 概念:存储一组相同数据类型的数据结构
  2. 语法:
    1. var 数组名[长度] 数据类型
    2. var 数组名[长度] 数据类型{元素1,元素2...}
    3. 数组名:=[...]数据类型{元素}
  3. 通过下标访问
  4. 长度和容量
package main

import "fmt"

func main() {
	var arr1[4] int
	//var arr1= [4] int
	//var arr1=[4] int{1,2,3,4}
	arr1[0]=1
	arr1[1]=2
	arr1[2]=3
	arr1[3]=4

	fmt.Println(arr1)
	fmt.Println("数组长度:",len(arr1))//实际存储数据量
	fmt.Println("数组容量:",cap(arr1))//能够存储的做大数量
	fmt.Println("...........")

	var arr2 =[4]int{1:8,3:19}
	fmt.Println(arr2)

	fmt.Println("...........")
	var arr3 =[5]string{"rose","王two狗"}
	fmt.Println(arr3)

	fmt.Println("...........")
	var arr4 =[...]int{1,2,3,4,5}
	fmt.Println(arr4)
	fmt.Println(len(arr4))
}

image.png

数组内存分析

地址连续,不用时内存自动销毁

数组的遍历

  • 方法1:依次访问,arr[0],arr[1]...
  • 方法2:通过循环,配合下标
  • 方法3:使用range
package main

import (
	"fmt"
)

func main() {

	arr:=[5]int{1,2,3,4,5}
	for i:=0;i<len(arr);i++ {
		arr[i]=i*2+1
	}
	fmt.Println(arr)
	
	fmt.Println(".......")
	for index,value:=range arr {
		fmt.Println("下标是:",index,"数值是:",value)
	}
	sum:=0
	for _,v:=range arr{
		sum+=v
	}
	fmt.Println(sum)
}

image.png

数组类型

package main

import "fmt"

func main() {
	//1.数值类型
	arr1:=[4]int {1,2,3,4}
	arr2:=[3]float64{2.15,3.18,6.19}
	arr3:=[2]string{"hello","world"}
	fmt.Printf("%T\n",arr1)
	fmt.Printf("%T\n",arr2)
	fmt.Printf("%T\n",arr3)

	fmt.Println("............")
	//2.赋值
	arr4:=arr1
	fmt.Println(arr1)
	fmt.Println(arr4)

	arr4[0]=100
	fmt.Println(arr1)
	fmt.Println(arr4)//不影响arr1

	fmt.Println(arr1==arr4)
	arr4[0]=1
	fmt.Println(arr1==arr4)
}