我正在尝试将存储在 interface[] 中的数据恢复为字符串数组。遇到意外错误。
type Foo struct {
Data interface{}
}
func (foo Foo) GetData() interface{} {
return foo.Data
}
func (foo *Foo) SetData(data interface{}) {
foo.Data = data
}
func main() {
f := &Foo{}
f.SetData( []string{"a", "b", "c"} )
var data []string = ([]string) f.GetData()
fmt.Println(data)
}
Run Code Online (Sandbox Code Playgroud)
错误:main.go:23:语法错误:语句结束时出现意外的 f
Tim*_*per 17
您尝试执行的是转换。类型转换有特定的规则,所有这些都可以在前面的链接中看到。简而言之,您不能将interface{}值转换为[]string.
您必须做的是类型断言,这是一种允许您(尝试)将接口类型“转换”为另一种类型的机制:
var data []string = f.GetData().([]string)
Run Code Online (Sandbox Code Playgroud)
https://play.golang.org/p/FRhJGPgD2z
| 归档时间: |
|
| 查看次数: |
12727 次 |
| 最近记录: |