method的继承和向上访问的问题

在 test/test.go中定义如下

package test

import "fmt"

type Test struct{
}

func (this *Test) SayHi(){
    fmt.Println("hi, i am test")
}

在 main.go 中定义如下:

package main

import (
    "fmt"
    "abc/test"
)

type abc struct{
    test.Test
}

func (this *abc) SayHi(){
    fmt.Println("hi, i am abc")
}

func main(){
    a := new(abc)
    a.SayHi()
}

如何才能在 abc 中调用到上层即test.Test的SayHi方法?

我这样写,是错误的

func (this *abc) SayHiTest(){
    this.test.Test.SayHi()
}

如果test.SayHi() 定义在同级目录下就没问题。多级目录就提示 没有 test字段。

非常感谢。

阅读 3.3k
1 个回答

this.Test.SayHi()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题