晓夏

北漂的女孩

Good Luck To You!

golang 切片slice和map

浏览量:421

1.Slice

package main
import (
       "fmt"
)
func main() {
       a := []byte{'a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k'}
       sa1 := a[2:5]
       sa2 := sa1[3:6]
       fmt.Println(string(sa1))
       fmt.Println(string(sa2))
}

答案:

图片.png

多个slice需要注意

package main

import (
       "fmt"
)

func main() {
       a := []int{1, 2, 3, 4, 5}
       s1 := a[2:5]
       s2 := a[1:3]
       fmt.Println(s1, s2)
       s1[0] = 9
       fmt.Println(s1, s2)
       s2 = append(s2,1,2,2,3,3,3,4,4,4,4)
       s1[0] = 9
       fmt.Println(s1, s2)
}

答案:

图片.png

2.map

package main

import (
       "fmt"
)

func main() {
       m := make(map[int]string)
       m[1] = "ok"
       delete(m,1)
       a :=m[1]
       fmt.Println(a)
}


复杂的map

package main

import (
       "fmt"
)

func main() {
       var m map[int]map[int]string
       m = make(map[int]map[int]string)
       a,ok := m[2][1]
       if !ok {
              m[2] = make(map[int]string)
       }
       m[2][1] = "dkl"
       a,ok = m[2][1]
       fmt.Println(a,ok)
}

答案

图片.png

package main

import (
       "fmt"
)

func main() {
       sm := make([]map[int]string,5)
       for i :=range sm {
              sm[i] = make(map[int]string,1)
              sm[i][1] = "ok"
              sm[i][2] = "哈哈"
              fmt.Println(sm[i])
       }
       fmt.Println(sm)
}

答案:

图片.png

对map排序

package main

import (
       "fmt"
       "sort"
)

func main() {
       m := map[int]string{1:"a",2:"b",3:"c",4:"d",5:"e"}
       s := make([]int,len(m))
       i := 0
       for k,_ := range m {
              s[i] = k
              i++

       }
       sort.Ints(s)
       fmt.Println(s)
}

答案:

图片.png

3.函数

package main

import (
       "fmt"
)

func main() {
       f :=closeuser(10)
       fmt.Println(f(1))
       fmt.Println(f(5))
}
func closeuser(x int) func(int) int   {
       return func(y int)int {
              return x+y
       }
}

答案:

图片.png











神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。