如何共享嵌入式结构指针

我有以下代码:


具有匿名字段的结构控制器。


type controller struct {

    *base.Controller

    store *data

}

如您所见,*base.Controller 是匿名字段指针。然后是由 *base.Controller 组成的第二个结构。


type expiredError struct {

    *base.Controller

    local string

}

我初始化控制器结构如下:


c := &controller{base.New(rw, r, false, "controller/account"), nil}

c.Title = "Activate account"

c.serve()

控制器上的 base.Controller 使用 base.New() 函数进行初始化。


现在我有控制器方法,它初始化 expiredError 结构,它也应该共享 base.Controller 的指针到 expiredError 的 base.Controller 。


func (rcv *controller) validate() error {


    ....


    // If time for activating account is expired

    if time.Now().Unix() > rcv.store.Expired {

        // Delete registered user from neo4j

        maccount.Delete(rcv.store.Email, rcv.Local)


        return &expiredError{base.Controller, rcv.Local}

    }


    return nil

}

我这里有一个编译器错误


type base.Controller is not an expression


江户川乱折腾
浏览 188回答 1
1回答

阿波罗的战车

您可以尝试通过提及父类的实例来引用匿名字段:rcv.Controller(因为匿名字段的“名称”与字段类型相同)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go