golang 切片slice和map
浏览量:423
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))
}答案:

多个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)
}答案:

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)
}答案

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)
}答案:

对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)
}答案:

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
       }
}答案:


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