2 回答

TA貢獻1827條經驗 獲得超8個贊
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 關注
- 367 瀏覽
添加回答
舉報