<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 - 將 任意 文件轉成 go 源碼。它還可以幫你把數據 壓縮一下 。常用于將數據嵌入程序. 這些資源文件變成源碼之后,數據儲存在字節切片中 (raw byte slice),只需要導入生成的源碼,調用幾個簡單的函數就可訪問,反正比 文件 IO 來得**簡單和快**。因為是源碼,也會加入編譯,最后**包含在可執行文件中**,發布時也就不再需要帶著資源文件 ## 實例 ### hello world <details> <summary>assets/a.txt</summary> ``` hello word hello word ``` </details> <br/> <details> <summary>main.go</summary> ``` package main import ( "demo/bindata" "fmt" ) func main() { // bindata 為 -pkg 指定的包名 file, err :=bindata.Asset("test/asd") if err != nil { fmt.Printf("%+v\n", err) } fmt.Printf("%+v\n", string(file)) } ``` </details> <br/> ``` > go mod init demo // 第一步:生成 bin-data > go-bindata -o=bindata/bindata.go -ignore="\\.DS_Store|desktop.ini|README.md" -pkg=bindata assets/... > go build main.go > main // hello word hello word ``` ### 使用Makefile <details> <summary>assets/a.txt</summary> ``` hello word hello word ``` </details> <br/> <details> <summary>main.go</summary> ``` package main import ( "demo/bindata" "fmt" ) func main() { file, err :=bindata.Asset("assets/a.txt") if err != nil { fmt.Printf("%+v\n", err) } fmt.Printf("%+v\n", string(file)) } ``` </details> </details> <br/> <details> <summary>Makefile</summary> ``` # 設置輸出文件目錄 BINDATA_PATH = bindata # 設置輸出的 go 文件名 BINDATA_NAME = bindata # 設置 pkg 的報名 BINDATA_PACKAGE = bindata # 靜態資源路徑 BINDATA_DIR = assets # ignore list 還是建議定義一個宏,方便隨時添加 BINDATA_IGNORE = "\\.DS_Store|desktop.ini|README.md" .PHONY: bindata build all: build build: bindata go build -o main.exe bindata: go-bindata -o=$(BINDATA_PATH)/$(BINDATA_NAME).go -ignore=$(BINDATA_IGNORE) -pkg=$(BINDATA_PACKAGE) $(BINDATA_DIR)/... ``` </details> <br/> ``` > go mod init demo > make build > main.exe // hello word hello word ``` ### 考慮配置文件 如果涉及到配置文件,則最好允許用戶修改配置,則需要把關于配置相關的靜態文件重新以文件形式存在, 并可通過參數的形式顯示生成 只需要第二個實例的 main.go 修改 <details> <summary>main.go</summary> ``` package main import ( "demo/bindata" "fmt" ) func init() { // 如果執行了 main install, 則生成配置文件 if len(os.Args)>1 && os.Args[1]=="install" { // 注意第一dir 參數為空 err := bindata.RestoreAssets("", "assets/a.txt") if err != nil { panic(err) } } } func main() { file, err :=bindata.Asset("assets/a.txt") if err != nil { fmt.Printf("%+v\n", err) } fmt.Printf("%+v\n", string(file)) } ``` </details> ``` > go mod init demo > make build > main.exe install //會生成配置文件 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看