copier icon indicating copy to clipboard operation
copier copied to clipboard

如何Copy非匿名嵌套结构体

Open Flipped199 opened this issue 9 months ago • 2 comments

如何Copy非匿名嵌套结构体

type A struct {
	Address    string 
}

type Project struct {
	Name string 
}

type AWithProject struct {
	A A  
	Project     Project 
}

type C struct{
        Address string
        Project     struct{
            Name string
        }
}

//  以上的情况从AWithProject 到 C只能成功复制Project的内容,无法复制Address这个字段,尝试过添加tag也无法生效

Flipped199 avatar May 09 '24 16:05 Flipped199

在C中使用匿名嵌套A的方式可以解决以上问题,貌似也属于是曲线救国了,要是库能原生支持就好了,或者使用tag支持xx.xx的嵌套层级,这样可以更方便的实现一些功能

Flipped199 avatar May 10 '24 06:05 Flipped199

不是有一种Method到Field的写法吗? 我觉得你可以添加一个Address方法就可以实现了。

func (a * AWithProject) Address() string {
	return a.A.Address
}

go-kenka avatar May 27 '24 09:05 go-kenka