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

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

讀取文件在嘗試讀取文件時返回 nil

讀取文件在嘗試讀取文件時返回 nil

Go
瀟瀟雨雨 2022-08-01 09:27:55
我在嘗試讀取文件時在調試器中獲取了。我不確定這是路徑問題還是讀者指針在哪里。FetchFlags是如何觸發的是由最終調用.nilsampleFlagstest.jsonhandlerserver.goFetchFlagsflags.gopackage flagsimport (    "encoding/json"    "fmt"    "io/ioutil")type Flag struct {    Name     string `json:"name"`    Category string `json:"category"`    Label    string `json:"label"`}func FetchFlags() []Flag {    sampleFlags, _ := ioutil.ReadFile("test.json")    fmt.Printf("File contents: %s", sampleFlags)    var Flags []Flag    _ = json.Unmarshal(sampleFlags, &Flags)    return Flags}結構:/server  server.go/package  /flags    flags.go    test.json  /pack_a  /pack_b
查看完整描述

2 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

該路徑應與您的 main.go(或等效)文件相關,而不是與您的軟件包相關。(絕對路徑也應該有效,但我不是100%確定)

如果您考慮一下,那么您將意識到它直接或間接地導入到您的主文件中。您的代碼編譯/執行不會跳轉到 ,而是將該代碼導入到主文件中。package/flagspackage/flags

我建議您使用abosulte路徑或相對于主文件的路徑。


查看完整回答
反對 回復 2022-08-01
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

您正在嘗試打開相對于包路徑的文件。這是一種糟糕的設計方法。例如,根據編譯方法,Go可能會將二進制文件放在目錄中。并且不會有文件。$GOROOT/bintest.json

為您的文件使用絕對路徑,或使用如何打開相對于我的GOPATH的文件?中的方法


查看完整回答
反對 回復 2022-08-01
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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