t := new(T) t为指向该结构体的指针
var t T
字面量方式
t := T{a, b}
t := &T{} //等效于 new(T)
package main
import "fmt"
func main() {
pet1 := new(Pet)
// *main.Pet ,&{0 }
fmt.Printf("%T ,%v\n",pet1,pet1)
var pet2 Pet
// main.Pet ,{0 }
fmt.Printf("%T ,%v\n",pet2,pet2)
pet3 := Pet{1, "cat"}
// main.Pet ,{1 cat}
fmt.Printf("%T ,%v\n",pet3,pet3)
// 等效于 new(Pet)
pet4 := &Pet{}
// *main.Pet ,&{0 }
fmt.Printf("%T ,%v\n",pet4,pet4)
}
type Pet struct{
id int
name string
}