【发布时间】:2023-03-16 10:46:02
【问题描述】:
我有这样的类型
type Transformer func(raw string) (*interface{}, error)
我需要一个布尔函数
var TransformBoolean Transformer = func(raw string) (*interface{}, error) {
var value bool
if raw == "true" {
value = true
} else if raw == "false" {
value = false
} else {
return nil, Error{"Invalid"}
}
return &value, nil // <-- Here's the error
}
函数返回类型是interface{},因为它可以返回整数、布尔值、浮点数等。 但是,编译器不允许我将 *boolean 作为 *interface{}
返回【问题讨论】:
-
永远不要使用指向接口的指针。它几乎没有任何意义。
标签: go pointers inheritance