package main
import (
"fmt"
"math/rand"
"sort"
"time"
)
func main() {
mp1 := make(map[int]string, 8)
mp1[0] = "a1"
fmt.Println(mp1)
fmt.Println(mp1[0])
fmt.Printf("type of a1: %T\n", mp1)
mp2 := map[string]string{
"name": "张三",
"hair": "long",
}
fmt.Println(mp2)
mp3 := map[string]int{
"Go": 90,
"Python": 80,
"JAVA": 70,
"C++": 60,
}
for k, v := range mp3 {
fmt.Println(k, v)
}
for k := range mp3 {
fmt.Println(k)
}
for _, k := range mp3 {
fmt.Println(k)
}
value, ok := mp3["Go"]
if ok {
fmt.Println(value)
}
delete(mp3, "C++")
fmt.Println(mp3)
mpSlice := make([]map[string]string, 3)
for i, v := range mpSlice {
fmt.Printf("index: %d, value: %v\n", i, v)
mpSlice[i] = make(map[string]string, 10)
}
mpSlice[0]["k00"] = "v00"
mpSlice[0]["k01"] = "v01"
mpSlice[1]["k10"] = "v10"
mpSlice[1]["k11"] = "v11"
mpSlice[2]["k20"] = "v20"
mpSlice[2]["k21"] = "v21"
fmt.Println(mpSlice)
for i, v := range mpSlice {
for _, v1 := range v {
fmt.Printf("index: %d, value: %v\n", i, v1)
}
}
sliceMap := make(map[string][]string, 3)
fmt.Println("初始化 sliceMap 其值 : ", sliceMap)
key := [2]string{"Country", "City"}
for _, v := range key {
value, ok := sliceMap[v]
if !ok {
value = make([]string, 0, 2)
}
if v == "Country" {
value = append(value, "中国", "俄罗斯")
} else {
value = append(value, "北京", "西安")
}
sliceMap[v] = value
}
fmt.Println(sliceMap)
rand.Seed(time.Now().UnixNano())
bMap := make(map[string]int, 200)
for i := 0; i < 20; i++ {
key := fmt.Sprintf("stu%02d", i)
value := rand.Intn(100)
bMap[key] = value
}
fmt.Println(bMap, len(bMap))
keys := make([]string, 0, 200)
for key := range bMap {
keys = append(keys, key)
}
fmt.Println("排序前:", keys)
sort.Strings(keys)
fmt.Println("排序后:", keys)
for _, key := range keys {
fmt.Println(key, bMap[key])
}
arr := [...]int{1, 2, 5, 4, 3}
sli := []int{1, 2, 5, 4, 3}
mp := map[string]int{
"a1": 1,
"a2": 2,
"a3": 3,
"a4": 5,
"a5": 4,
}
fmt.Printf("Type: %T, Value: %v\n", arr, arr)
fmt.Printf("Type: %T, Value: %v\n", sli, sli)
fmt.Printf("Type: %T, Value: %v\n", mp, mp)
for _, A := range arr {
fmt.Println("查看arr输出顺序", A)
}
fmt.Println("----------------------")
for _, S := range sli {
fmt.Println("查看sli输出顺序", S)
}
fmt.Println("----------------------")
for _, M := range mp {
fmt.Println("查看map输出顺序", M)
}
}