我没有看到我定义的结构的公共方法。有人可以让我明白为什么吗?这是代码:// 数据保存器.go:package DataStorageimport ( "fmt" "os")type DataSaver struct { // doesn't relevant to my question fileName string file *os.File}func PrintStr() { fmt.Println("hello")}然后,我在其他类中有一个主要方法。我初始化了结构,我想调用 PrintStr() 函数。但是,我无法调用此方法。为什么?谢谢你!
3 回答
jeck猫
TA贡献1909条经验 获得超7个赞
似乎您还没有方法接收器的概念。您的结构方法应定义如下:
func (this DataSaver)PrintStr() {
fmt.Println("hello")
}
或者
func (this *DataSaver)PrintStr() {
fmt.Println("hello")
}
您选择哪个取决于您是否要在指针上调用该方法;
慕村225694
TA贡献1880条经验 获得超4个赞
我玩过这个,有几件事需要注意:
确保根据 GOPATH 正确导入包,例如
导入“github.com/some-repo/datastorage”
并确保你的包/存储库在你的 GOPATH 和正确的目录中(go 对你如何做到这一点非常挑剔)
使用包名称引用您的函数,如下所示:
func main(){ DataStorage.PrintStr() }
另一张海报是正确的,因为 go 约定是将包名称保持小写。
- 3 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消