Go条件指针值
Go conditional pointer value
我在程序中有几个结构。我有一个指针应该有条件地指向这些结构之一。这是一个简短的非功能示例:
type Struct1 struct {
name string
}
type Struct2 struct {
name string
}
func main() {
var outputDevice
switch inputValue {
case "one":
outputDevice = &Struct1{name: "name"}
case "two":
outputDevice = &struct2{name: "name"}
}
}
注意,这两个结构有一个共同的接口:
type Output interface {
Print() error
}
关于如何解决这个问题的任何想法。
这正是接口的用途。
如果您的两种类型已经共享一个公共接口,那么将您的变量设为接口类型:
var outputDevice Output
我在程序中有几个结构。我有一个指针应该有条件地指向这些结构之一。这是一个简短的非功能示例:
type Struct1 struct {
name string
}
type Struct2 struct {
name string
}
func main() {
var outputDevice
switch inputValue {
case "one":
outputDevice = &Struct1{name: "name"}
case "two":
outputDevice = &struct2{name: "name"}
}
}
注意,这两个结构有一个共同的接口:
type Output interface {
Print() error
}
关于如何解决这个问题的任何想法。
这正是接口的用途。
如果您的两种类型已经共享一个公共接口,那么将您的变量设为接口类型:
var outputDevice Output