亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

看不到 struct Golang 的公共函數

看不到 struct Golang 的公共函數

Go
ABOUTYOU 2023-06-19 15:52:41
我沒有看到我定義的結構的公共方法。有人可以讓我明白為什么嗎?這是代碼:// 數據保存器.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 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

那不是方法,它只是一個函數。

導入 DataStorage(您應該將其設為小寫)然后您可以調用 DataStorage.PrintStr()


查看完整回答
反對 回復 2023-06-19
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

似乎您還沒有方法接收器的概念。您的結構方法應定義如下:


func (this DataSaver)PrintStr() {

   fmt.Println("hello")

}


或者


func (this *DataSaver)PrintStr() {

   fmt.Println("hello")

}

您選擇哪個取決于您是否要在指針上調用該方法;


查看完整回答
反對 回復 2023-06-19
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

我玩過這個,有幾件事需要注意:

  1. 確保根據 GOPATH 正確導入包,例如

    導入“github.com/some-repo/datastorage”

并確保你的包/存儲庫在你的 GOPATH 和正確的目錄中(go 對你如何做到這一點非常挑剔)

  1. 使用包名稱引用您的函數,如下所示:

    func main(){ DataStorage.PrintStr() }

另一張海報是正確的,因為 go 約定是將包名稱保持小寫。


查看完整回答
反對 回復 2023-06-19
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號