假设我有 3 个结构:
type A struct{
Foo map[string]string
}
type B struct{
Foo map[string]string
}
type C struct{
Foo map[string]string
}
然后我想创建一个可以接受任何这些结构的函数:
func handleFoo (){
}
有什么办法可以用 Golang 做到这一点吗?就像是:
type ABC = A | B | C
func handleFoo(v ABC){
x: = v.Foo["barbie"] // this would be nice!
}
好的,让我们尝试一个界面:
type FML interface {
Bar() string
}
func handleFoo(v FML){
z := v.Bar() // this will compile
x: = v.Foo["barbie"] // this won't compile - can't access properties like Foo from v
}
在一种鼓励/强制组合的语言中,我不明白为什么你不能访问像 Foo 这样的属性。
侃侃尔雅
拉风的咖菲猫
拉丁的传说
相关分类