1.6.2 结构体初始化

  1. Go语言中数组只能存储一种数据类型,但在结构体中可以为不同项定义不同的数据类型

    type Programmer struct {
    	Name   string
    	GoodAt string
    }
    
    func main() {
    
    	// 方法1
    	var person Programmer
    	person.Name = "Jack"
    	person.GoodAt = "Java"
    	fmt.Println(person)
    
    	// 方法2
    	person1 := Programmer{"Jack", "PHP"}
    	fmt.Println(person1)
    
    	// 方法3:此处(*person2).Name等同于person2.Name
    	// 其他属性同理,因为Go语言设计者在底层做了相关处理
    	var person2 = new(Programmer)
    	person2.Name = "Barry"
    	(*person2).GoodAt = "Python"
    	fmt.Println(*person2)
    
    	// 方法4:此处(*Programmer).Name等同于person3.Name,其他属性同理
    	var person3 = &Programmer{}
    	(*person3).Name = "Snow"
    	(*person3).GoodAt = "Go"
    	fmt.Println(*person3)
    
    }

    结果:

    {Jack Java}
    {Jack PHP}
    {Barry Python}
    {Snow Go}

Last updated