0
点赞
收藏
分享

微信扫一扫

Go数组、切片、Map的声明

数组

package main

import "fmt"

func main() {
/**
先声明再初始化
*/
// 数组的声明
var array1 [3]int
// 数组的赋值
array1[0]=1
array1[1]=2
array1[2]=3
/**
声明并赋值
*/
var array2 = [3]int{1,2,3}
/**
系统自动推导类型
*/
array3 := [3]int{1,2,3}

fmt.Println(array1,array2,array3)

/**
动态获取数组长度
*/
array4 :=[...]int{1,2,3,4,5}
fmt.Println(array4)
}

切片

package main

import "fmt"

func main() {
/**
先声明再初始化
*/
// 切片的声明——两种
var slice1 []int
var slice11 = make([]int,0)
// 切片的赋值
slice1 = []int{1,2,3}
/**
声明并赋值
*/
var slice2 = []int{1,2,3}
/**
系统自动推导类型
*/
slice3 := []int{1,2,3}

fmt.Println(slice1,slice2,slice11,slice3)

/**
追加——尾部追加,两个slice合并
*/
slice4 :=append(slice3,3) // 尾部追加
slice5 :=append(slice3,slice4...) // 头部追加,两个slice合并
fmt.Println(slice4,slice5)

/**
遍历切片——需要复制slice1的key和value,比较耗内存
*/
for key, value := range slice1 {
fmt.Println(key,value)
}
/**
遍历切片
*/
for i := 0; i < len(slice1); i++ {
fmt.Println(slice1[i])
}
}

Map

package main

import "fmt"

func main() {
/**
先声明再初始化
*/
// map的声明——两种
var m1 map[string]int
var m11 = make(map[string]int, 0)
// map的赋值
m1 = map[string]int{"one": 1, "two": 2, "three": 3}
m1["four"] = 4
/**
声明并赋值
*/
var m2 = map[string]int{"one": 1, "two": 2, "three": 3}
/**
系统自动推导类型
*/
m3 := map[string]int{"one": 1, "two": 2, "three": 3}

fmt.Println(m1, m2, m11, m3)

/**
遍历key,value
*/
for key, val := range m1 {
fmt.Println(key, val)
}
/**
遍历key
*/
for key := range m1 {
fmt.Println(key)
}
/**
判断是否存在,返回value和是否存在的bool,不存在则返回对应value的零值和false
*/
value, ok := m1["five"]
fmt.Println(value, ok)

// 下面这种会panic:assignment to entry in nil map
var Data map[string]string
Data["a"]="a"
fmt.Println(Data)

}

Go数组、切片、Map的声明_初始化


举报

相关推荐

0 条评论