簡體   English   中英

Golang類型接口{}是沒有方法的接口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM