package main import ( "fmt" ) func main() { //基本数据类型(默认值) var a int fmt.Println(a) //0 a = 100 fmt.Println(a) //100 //数组(零) 数组是数据结构 var arr [5]int fmt.Println(arr) //[0 0 0 0 0] arr[0] = 1000 fmt.Println(arr) //[1000 0 0 0 0] //切片(空) 切片是数据结构 var slice []int fmt.Println(slice) //[] slice = []int{1, 2, 3, 4, 5} fmt.Println(slice) //[1 2 3 4 5] //map(nil map,无法直接使用) var map1 map[int]int fmt.Println(map1) //map[] //map1[10] = 100 //fmt.Println(map1) //panic: assignment to entry in nil map map2 := make(map[int]int) fmt.Println(map2) //map[] map2[100] = 1000 fmt.Println(map2) //map[100:1000] i, ok := map2[100] //这个OK也可以不写 fmt.Println(i, ok) //管道(nil) var c chan int fmt.Println(c) //<nil> c2 := make(chan int) fmt.Println(c2) //0xc000054060 go func() { //不能写在写数据的下面,会发生deadlock for n := 0; n < 10; n++ { //i := <-c2 //fmt.Println(i) v, ok := <-c2 //OK可以不写 fmt.Println(v, ok) } }() for n := 0; n < 10; n++ { c2 <- n } }