Go Embed 概覽
go在1.16之后引入了一個(gè)新包 embed。它使我們?cè)L問(wèn)工程內(nèi)的代碼變的相對(duì)容易
概覽
它支持講內(nèi)部文件轉(zhuǎn)換為 string, []byte和一個(gè)embed像是的fs結(jié)構(gòu)。
用法如下
string
import _ "embed"
//go:embed hello.txt
var s string
print(s)
[]byte 這個(gè)可以用于二進(jìn)制文件沪蓬,例如秘鑰證書(shū)等
import _ "embed"
//go:embed hello.txt
var b []byte
print(string(b))
emab.FS
import "embed"
//go:embed hello.txt
var f embed.FS
data, _ := f.ReadFile("hello.txt")
print(string(data))
這個(gè)結(jié)構(gòu)大家可能比較疑惑,在已經(jīng)有了 string 和 []byte 的前提下這個(gè)不是多此一舉嗎斑胜?其實(shí)不然,F(xiàn)S可以進(jìn)行一個(gè)擴(kuò)展用法嫌吠,比如目錄匹配止潘,多文件加載等。這樣的話居兆,我們就可以很方便的把某個(gè)目錄下的所有文件全部加載進(jìn)去覆山,而后就可以很方便的讀取出來(lái)。