1type T1 int
2type T2 T1
1type T = string
1// 定义结构体
2type Employee struct {
3 Id string
4 Name string
5 Age int
6}
1// 三种初始化的方式
2func TestCreateObj(t *testing.T) {
3 e := Employee{"001", "yunsheng", 32} // 省略字段名。不建议
4 t.Log(e)
5
6 e2 := Employee{Name: "World", Age: 66}
7 t.Log(e2)
8
9 e3 := new(Employee) // 返回指针
10 e3.Age = 111
11 t.Log(e3)
12
13 // 三种方式创建的对象的类型
14 t.Logf("e : %T", e) // obj_test.Employee
15 t.Logf("e2 : %T", e2) // obj_test.Employee
16 t.Logf("e3 : %T", e3) // *obj_test.Employee
17}
1e2 := Employee{Name: "World", Age: 66}
1 e2 := Employee{
2 Name: "World",
3 Age: 66,
4 }
1e3 := new(Employee) // 返回指针
2e3.Age = 111
1 type Empty struct {}
2 var e Empty
3 t.Log(unsafe.Sizeof(e))
1 var c = make(chan Empty) // 声明一个元素类型为Empty的channel
2 c <- Empty{} // 向channel写入一个“事件”
1 type Reader struct {
2 ReaderName string
3 Age int
4 }
5
6 type Book struct {
7 BookName string
8 Reader Reader
9 }
1 type Book struct {
2 BookName string
3 Reader
4 }
1 reader := Reader{"yunsheng", 20}
2 book := Book{"禅与摩托车维修艺术", reader}
3 t.Log(book.Reader.ReaderName)
4 t.Log(book.ReaderName)
1var book Book
1book := Book{"禅与摩托车维修艺术", reader}
1book := Book{BookName:"禅与摩托车维修艺术", Reader: reader}
1type Employee struct {
2 Id string `json:"id"`
3 Name string `json:"name"`
4 Age int `json:"age,omitempty"`
5}
1key1:"value1" key2:"value2"