我还没有找到使用 interface{}
类型的好资源。例如
package main
import "fmt"
func weirdFunc(i int) interface{} {
if i == 0 {
return "zero"
}
return i
}
func main() {
var i = 5
var w = weirdFunc(5)
// this example works!
if tmp, ok := w.(int); ok {
i += tmp
}
fmt.Println("i =", i)
}
你知道关于使用 Go 的 interface{}
的一个很好的介绍吗?
具体问题:
- 我如何获得 w 的“真实”类型?
- 有什么方法可以获取类型的字符串表示形式?
- 有什么方法可以使用类型的字符串表示形式来转换值吗?
原文由 cc young 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的例子确实有效。这是一个简化版本。
它使用 类型断言。