2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
想通了,問題是我的緩沖區(qū)太大了。如果您的 []byte 太大,那么 go-yaml 會將這些額外的字節(jié)讀取為字符并拋出錯(cuò)誤。我將代碼更改為:
func readConf(CONF string) *EntriesList {
confiFile, err := ioutil.ReadFile(CONF)
check(err)
var entries EntriesList
err = yaml.Unmarshal(confiFile, &entries)
check(err)
return &entries
}
它按預(yù)期工作。

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
從它的聲音來看,您在https://github.com/go-yaml/yaml/blob/53feefa2559fb8dfa8d81baad31be332c97d6c77/readerc.go#L347 上遇到了錯(cuò)誤塊,看起來這也應(yīng)該告訴您偏移量(在文件中它遇到有問題的字符)和字符代碼。如果這些信息足以解決您的問題,那就太好了。另一方面,如果 yaml 庫吐出經(jīng)過驗(yàn)證的 yaml,它不適合接受作為輸入,您應(yīng)該在https://github.com/go-yaml/yaml/issues上向 Github 上的維護(hù)者提出問題
- 2 回答
- 0 關(guān)注
- 853 瀏覽
添加回答
舉報(bào)