匿名嵌套,可以直接点到内层结构体内的parameter

package main

import (
	"fmt"
)

type address struct {
	province string
	city     string
}

type company struct {
	name string
	address //这个就是一个匿名的结构体
}

type person struct {
}

func main() {
	fmt.Println("hello")
	com := company{
		name: "sap",
		address: address{
			"shanghai",
			"shanghai",
		},
	}
	fmt.Printf("%v %v", com.city, com.province)
}

匿名结构体冲突需要按层调用

package main

// 匿名嵌套,可以直接点到内层结构体内的parameter
import (
	"fmt"
)

type address struct {
	province string
	city     string
}

type company struct {
	name string
	address
	workspace
}

type workspace struct {
	province string
	city     string
}

func main() {
	fmt.Println("hello")
	com := company{
		name: "sap",
		address: address{
			"shanghai",
			"shanghai",
		},
	}
	fmt.Printf("%v %v", com.address.city, com.address.city)
}