package main import ( "errors" "fmt" "testing" ) func Test_1(t *testing.T) { type T struct { A string B []string } x := T{"煎鱼", []string{"上班"}} y := x y.A = "咸鱼" y.B[0] = "下班" fmt.Println(x) fmt.Println(y) /* slice浅拷贝 {煎鱼 [下班]} {咸鱼 [下班]}*/ } func Test_2(t *testing.T) { x := [3]int{1, 2, 3} func(arr [3]int) { arr[0] = 7 fmt.Println(arr) }(x) fmt.Println(x) } func Test_3(t *testing.T) { x := []int{1, 2, 3} func(arr []int) { arr[0] = 7 fmt.Println(arr) }(x) fmt.Println(x) } func Test_4(t *testing.T) { m := map[string]string{ "1": "1", "2": "2", "3": "3", } for k, v := range m { fmt.Printf("%v %v | ", k, v) } fmt.Printf("\n") for k, v := range m { fmt.Printf("%v %v | ", k, v) } fmt.Printf("\n") for k, v := range m { fmt.Printf("%v %v | ", k, v) } } func Foo() (err error) { if err := errors.New("error testing"); err != nil { return err } return } func Test_5(t *testing.T) { err := Foo() fmt.Println(err.Error()) }