我想做这样的事情
type Struct1 {
a string
}
type Struct 2{
b int
}
if something{
c := Struct1{a:''}
}else{
c := Struct2{b:1}
}
somefunc(c)
我知道我不能在一个区块内声明c然后在外面访问它。
我试过这样的事情
type Struct1 {
a string
}
type Struct 2{
b int
}
c := Struct2{b:1}
if something{
c := Struct1{a:''}
}
somefunc(c)
它提供了错误 - Cannot assign Struct1 to c(type Struct2)
我怎样才能达到这样的目标?
答案 0 :(得分:0)
您可以使用interface{}
package main
import (
"fmt"
)
type Struct1 struct {
a string
}
type Struct2 struct {
b int
}
func main() {
var c interface{}
if true {
c = Struct1{a: ""}
} else {
c = Struct2{b: 1}
}
fmt.Printf("type %T", c)
}
// Print:
// type main.Struct1