值类型与应用类型
数组与字符串为值类型,切片、映射、通道为值类型,赋值需注意。
1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 //数组 9 a1 := [3]int{1, 2, 3} 10 a2 := a1 11 a2[0] = 2 12 fmt.Println(a1) //print: 1 2 3 13 fmt.Println(a2) //print: 2 2 3 14 // 字符串 15 s1 := "123" 16 s2 := s1 17 s2 = "223" 18 fmt.Println(s1) //print 123 19 fmt.Println(s2) //print 223 20 // 切片 21 slice1 := []int{1, 2, 3} 22 slice2 := slice1 23 slice2[0] = 2 24 fmt.Println(slice1) //print 2 2 3 25 fmt.Println(slice2) //print 2 2 3 26 // map 27 m1 := make(map[int]string) 28 m1[1] = "1" 29 m2 := m1 30 m2[1] = "2" 31 fmt.Println(m1) //print 1:2 32 fmt.Println(m2) //print 1:2 33 // chan 34 c1 := make(chan bool) 35 c2 := c1 36 go func() { 37 v := <-c2 38 fmt.Println(v) //print true 39 }() 40 c1 <- true 41 }
时间: 2024-10-26 06:04:23