Từ spec:
Một kiểu nhúng phải được xác định như một tên kiểu T hoặc là một con trỏ đến một tên loại phi giao diện * T và T chính nó có thể không phải là một kiểu con trỏ.
Bạn thấy rằng nó đề cập đến "tên loại".
Loại được đặt tên được chỉ định bằng tên loại (có thể đủ điều kiện); các kiểu chưa đặt tên được xác định bằng cách sử dụng một kiểu chữ, trong đó soạn một kiểu mới từ các kiểu hiện có.
Nói cách khác, bản đồ hoặc lát có thể không ẩn danh trừ khi chúng được định nghĩa là loại được đặt tên. Ví dụ:
type MyMap map[string]string
type customMap struct{
MyMap
ordered []string
}
Tuy nhiên, ngay cả khi bạn nhúng myMap hoặc một loại lát, bạn sẽ vẫn không thể index customMap. Chỉ các trường và phương thức có thể được "quảng bá" khi bạn nhúng. Đối với mọi thứ khác, chúng hoạt động như một lĩnh vực khác. Trong ví dụ trên, MyMap không có bất kỳ trường hoặc phương thức nào và do đó tương đương với:
type customMap struct{
MyMap MyMap
ordered []string
}
Nguồn
2014-10-19 03:54:11
Bạn có thể xem tại đây (http://stackoverflow.com/a/26194639/6309) một nỗ lực khác khi nhúng một loại chưa đặt tên. Nó cũng thất bại. – VonC