我使用了 github.com/hooklift/gowsdl/soap ,并使用此模式生成了代码
package funky
import (
"fmt"
)
type Place struct {
Text string
}
type RandomFunky interface {
Buggy(b int)(int)
}
type randomFunky struct {
place *Place
}
func NewFunky(p *Place) RandomFunky {
return &randomFunky{
place: p,
}
return nil
}
func (rf * randomFunky) Buggy(b int)(int) {
fmt.Println(rf.place.Text)
return b
}
package main
import (
"fmt"
"funky"
)
func main() {
p := funky.Place{}
p.Text = "o jee"
f := funky.NewFunky(&p)
fmt.Printf("%T\n",f) // type of "*funky.randomFunky"
// var f *funky.randomFunky !!! cannot refer to unexported name funky.randomFunky
f.Buggy(1)
}
“f” - 我可以通过这种方式获得这种类型,但我无法创建这种类型的变量!
如果我想将 *funky.randomFunky var 存储在 struct 中怎么办?
或者将其传递给函数?
这是否意味着每次我想调用 Buggy 方法时都必须重新创建 NewFunky ?(假设 Buggy 在多个地方调用和/或接口有更多方法)
或者我应该修改代码并公开 *funky.randomFunky 吗?
要不然?
素胚勾勒不出你
相关分类