Go 不';我看不到结构物的公共功能
我没有看到我定义的结构的public方法。 有人能告诉我为什么吗? 代码如下: //DataSaver.go:Go 不';我看不到结构物的公共功能,go,Go,我没有看到我定义的结构的public方法。 有人能告诉我为什么吗? 代码如下: //DataSaver.go: package DataStorage import ( "fmt" "os" ) type DataSaver struct { // doesn't relevant to my question fileName string file *os.File } func PrintStr() { fmt.Println("hello
package DataStorage
import (
"fmt"
"os"
)
type DataSaver struct {
// doesn't relevant to my question
fileName string
file *os.File
}
func PrintStr() {
fmt.Println("hello")
}
然后,我在另一个类中有一个main方法。我初始化了结构,并想调用PrintStr()函数。但是,我无法调用此方法。为什么?
谢谢大家! 这不是一个方法,它只是一个函数
导入DataStorage(您应该将其设置为小写),然后您可以调用DataStorage.PrintStr()我自己也在玩这个,有几件事需要注意:
另一张海报是正确的,因为go惯例是将包名保持为小写。似乎您还没有方法接收器的概念。结构的方法应定义如下:
func (this DataSaver)PrintStr() {
fmt.Println("hello")
}
或
您选择哪一个取决于您是否要在指针上调用该方法 我想实例化一个对象,然后在此对象上调用PrintStr()。我怎样才能做到这一点?我看不到公共功能。谢谢,请坐飞机。它将回答有关基本语法和语言功能的任何问题。
func (this *DataSaver)PrintStr() {
fmt.Println("hello")
}