Golang のパッケージ化方法:
1. パッケージ化には go-bindata を使用します:
go-bindata は非常に簡単です。デザインコンセプトも分かりにくいものではありません。そのタスクは、静的ファイルを Go 言語のソース コードにカプセル化し、統一されたインターフェイスを提供することです。このインターフェイスを通じてファイル パスを渡すと、対応するパスのファイル データが返されます。
簡単に言えば、静的ファイルから .go ファイルを生成し、バイナリ ファイルにコンパイルできるようにすることができます。プロジェクトが開始されると、.go ファイルは静的ファイルにリリースされます。
使用例:
静的ディレクトリ全体をパッケージ化し、使用時に解放する
# 目录结构 ConfigTest ├── asset │ └── asset.go 静态文件编译之后的go文件 ├── config # 静态文件目录 │ ├── rule.yaml │ └── rule.json ├── cli # 运行目录 │ ├── config 执行main释放出来的静态文件 │ │ ├── rule.yaml │ │ └── rule.json │ └── main # main.go编译之后生成的二进制执行文件 └── main 程序目录 └── main.go # 源码
コマンドを実行して静的ファイルを go ファイルにパッケージ化する
go-bindata -o=./asset/asset.go -pkg=asset config/... -o # 指定打包后生成的go文件路径 -pkg # 指定go文件的包名 config/... # 指定需要打包的静态文件路径
2. go.rice を使用してパッケージ化する
go.rice は静的ファイルを go ファイルにパッケージ化することもサポートしていますが、その動作は go-bindata とは大きく異なります。使用法の観点から見ると、go.rice は実際にはより便利な静的ファイル操作ライブラリです。静的ファイルのパッケージ化は付随的な機能です。
インストール
go get github.com/GeertJohan/go.rice/...
使用
go.rice ディレクトリをrice.Box操作
import ( "fmt" "html/template" "github.com/GeertJohan/go.rice" ) func main() { // 这里写相对于的执行文件的地址 box, err := rice.FindBox("theme/default") if err != nil { println(err.Error()) return } // 从目录 Box 读取文件 str, err := box.String("post.html") if err != nil { println(err.Error()) return } t, err := template.New("tpl").Parse(str) fmt.Println(t, err) }
コマンド
go.お米の包装コマンドはriceです。使い方は非常に簡単です。go.rice オペレーションがある go code ディレクトリで、rice embed-go:
rice embed-go rice -i "github.com/fuxiaohei/xyz" embed-go // -i 处理指定包里的 go.rice 操作
を直接実行します。golang の詳細については、golang チュートリアルを参照してください。 PHP 中国語 Web サイトの 列。
以上がgolang をパッケージ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。