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)) }
答案:
多个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 } }
答案:
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。