[英]Golang type interface {} is interface with no methods
目前我有類似的東西
main.go
gojob.NewJob("every 2 second", "pene", func() {
t := gojob.Custom("pene")
log.Println(t)
}, struct {
Id int
}{
1,
})
我的gojob包
func NewJob(t string, name string, c func(), v interface{}) {
e := strings.Split(t, " ")
job := process(e)
job.log = false
job.name = name
job.action = c
job.custom = v
jobs = append(jobs, job)
}
和
func Custom(name string) interface{} {
for i := range jobs {
if jobs[i].name != name {
continue
}
return jobs[i].custom
}
return nil
}
事情是我傳遞給NewJob的函數是每兩秒在goroutine執行但我想訪問我傳遞的匿名結構...但是當我嘗試訪問
t.Id
我越來越
t.Id undefined(type interface {}是沒有方法的接口)
然而,印刷t給了我預期的結果
{1}
在訪問其字段之前,必須鍵入斷言為兼容類型。
id := v.(struct{Id int}).Id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.