2 回答
TA贡献1827条经验 获得超7个赞
test([]interface{1, 2, 3})错了,应该是test(state{1,2,3})。
您还可以像访问任何切片一样访问 s 中的第一个元素,使用s[x]:
type state []interface{}
func test(s state) {
fmt.Println(s[0])
}
func main() {
test(state{1, 2, 3})
}
TA贡献1829条经验 获得超7个赞
package main
import (
"fmt"
"log"
)
type state []interface{}
func (s state) item(index int) (interface{}, error) {
if len(s) <= index {
return nil, fmt.Errorf("Index out of range")
}
return s[index], nil
}
func main() {
st := state{1, 2, 3}
// get sub item
it, err := st.item(0)
if err != nil {
log.Fatal(err)
}
fmt.Printf("First Item %v\n", it)
// cast back to []interface{}
items := []interface{}(st)
fmt.Println(items)
}
- 2 回答
- 0 关注
- 346 浏览
添加回答
举报