2 回答
TA貢獻1786條經驗 獲得超11個贊
它無法工作,因為您嘗試將 AccessKey 附加到不是切片的 interface{} 類型。
package main
import (
"fmt"
)
type AccessKeys struct {
AccessKeys []interface{}
}
type AccessKey struct {
AccessKeyID string
}
func main() {
var b AccessKey
b.AccessKeyID = "ye"
var bs AccessKeys
bs.AccessKeys = append(bs.AccessKeys, b)
fmt.Println(bs)
}
但在我看來,這不是非常慣用的做某事的方式,而是取決于你想要實現的目標。我什至會替換
AccessKeys []interface{}
與
AccessKeys []AccessKey
TA貢獻1796條經驗 獲得超7個贊
感謝一位后來刪除他的評論的好心的海報。
它不起作用,因為AccessKeys interface{}使 AccessKeys 成為無類型的 nil 類型,因為接口的零值是無類型的nil。由于 Go 是一種靜態類型語言,它會在編譯時報錯。
如果這是有道理的,出于同樣的原因,你不能在 Go 中這樣做:
n := nil
即使這是固定的,它也會在運行時在斷言 say 時失敗panic: interface conversion: interface {} is nil, not []main.AccessKey。雖然我不確定為什么。
- 2 回答
- 0 關注
- 157 瀏覽
添加回答
舉報
