3 回答

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
我同意這還不錯(cuò)。我將添加其他一些想法。
正如Thomas所展示的,您不需要中間變量title日期和body。嘗試一下
return &Post{ Title: meta[1], Date: meta[2], Body: body,}
的確可以省略字段名稱,但是有時(shí)候我喜歡它們使代碼保持自我記錄。(我認(rèn)為獸醫(yī)也喜歡它們。)
我忙于字符串和字節(jié)片,但可能比我應(yīng)該做的更多。由于您是一口氣讀取文件,因此您不必?fù)?dān)心這一點(diǎn)。將所有內(nèi)容轉(zhuǎn)換為一個(gè)大字符串,然后將其切成薄片是一種便捷的操作方式,只需記住,如果保留字符串的任何部分,則會(huì)將其固定在內(nèi)存中。如果您的文件很大,或者您有很多文件,而最終只保留了其中大多數(shù)文件的元數(shù)據(jù),那么這可能不是解決之道。
每個(gè)文件只有一個(gè)博客條目?如果是這樣,我想我會(huì)提出托馬斯建議的一種變體。驗(yàn)證前一個(gè)字節(jié)是---(或文件已損壞),然后使用strings.Index(fileString [3:],“ ---”)。當(dāng)段數(shù)未知時(shí),分割更合適。在您的情況下,您只是在元之后尋找單個(gè)分隔符。索引將在搜索元數(shù)據(jù)并完成之后找到它,而無需遍歷整個(gè)身體。(無論如何,如果主體包含字符串“ ---”怎么辦?)
最后,有些人為此使用正則表達(dá)式。我還沒有準(zhǔn)備好使用正則表達(dá)式,但是無論如何,這是另一種方法。
- 3 回答
- 0 關(guān)注
- 188 瀏覽
添加回答
舉報(bào)