我在嘗試讀取文件時(shí)在調(diào)試器中獲取了。我不確定這是路徑問題還是讀者指針在哪里。FetchFlags是如何觸發(fā)的是由最終調(diào)用.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}結(jié)構(gòu):/server server.go/package /flags flags.go test.json /pack_a /pack_b
2 回答

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
該路徑應(yīng)與您的 main.go(或等效)文件相關(guān),而不是與您的軟件包相關(guān)。(絕對(duì)路徑也應(yīng)該有效,但我不是100%確定)
如果您考慮一下,那么您將意識(shí)到它直接或間接地導(dǎo)入到您的主文件中。您的代碼編譯/執(zhí)行不會(huì)跳轉(zhuǎn)到 ,而是將該代碼導(dǎo)入到主文件中。package/flags
package/flags
我建議您使用abosulte路徑或相對(duì)于主文件的路徑。

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
您正在嘗試打開相對(duì)于包路徑的文件。這是一種糟糕的設(shè)計(jì)方法。例如,根據(jù)編譯方法,Go可能會(huì)將二進(jìn)制文件放在目錄中。并且不會(huì)有文件。$GOROOT/bin
test.json
為您的文件使用絕對(duì)路徑,或使用如何打開相對(duì)于我的GOPATH的文件?中的方法。
- 2 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
0/150
提交
取消