Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membenamkan Fail ke dalam Binari My Go?
Menggabungkan Fail ke dalam Go Binari
Ingin mengedarkan satu boleh laku yang termasuk fail teks yang diperlukan? Go menyediakan penyelesaian untuk membenamkan fail ke dalam binari, disesuaikan untuk pelbagai platform.
Go 1.16 and Beyond: go:embed Directive
Untuk Go versi 1.16 dan lebih tinggi, manfaatkan arahan go:embed. Ia menawarkan cara yang elegan untuk membenamkan fail:
import "embed" //go:embed hello.txt var s string print(s) //go:embed hello.txt var b []byte print(string(b)) //go:embed hello.txt var f embed.FS data, _ := f.ReadFile("hello.txt") print(string(data))
Go 1.4 and Later: go generate for Flexibility
Untuk Go versi 1.4 dan seterusnya, anda boleh menggunakan pergi menjana untuk fleksibiliti yang lebih besar. Pendekatan ini melibatkan:
Teknik ini membolehkan membenamkan berbilang fail teks dengan pengekodan keras yang minimum. Contohnya:
main.go
package main import "fmt" //go:generate go run scripts/includetxt.go func main() { fmt.Println(a) fmt.Println(b) }
script/includetxt.go
package main import ( "io" "io/ioutil" "os" "strings" ) func main() { fs, _ := ioutil.ReadDir(".") out, _ := os.Create("textfiles.go") out.Write([]byte("package main \n\nconst (\n")) for _, f := range fs { if strings.HasSuffix(f.Name(), ".txt") { out.Write([]byte(strings.TrimSuffix(f.Name(), ".txt") + " = `")) f, _ := os.Open(f.Name()) io.Copy(out, f) out.Write([]byte("`\n")) } } out.Write([]byte(")\n")) }
Arahan Bina:
$ go generate $ go build -o main
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membenamkan Fail ke dalam Binari My Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!