Go Binaries에 파일 통합
필요한 텍스트 파일이 포함된 단일 실행 파일을 배포하고 싶으십니까? Go는 다양한 플랫폼에 맞춰 바이너리에 파일을 삽입하기 위한 솔루션을 제공합니다.
Go 1.16 이상: go:embed 지시문
Go 버전 1.16 이상의 경우 go:embed 지시어. 파일을 삽입하는 우아한 방법을 제공합니다.
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 이상: 유연성을 위해 go 생성
Go 버전 1.4 이상에서는 다음을 사용할 수 있습니다. 더 큰 유연성을 위해 생성하세요. 이 접근 방식에는 다음이 포함됩니다.
이 기술을 사용하면 최소한의 하드코딩으로 여러 텍스트 파일을 삽입할 수 있습니다. 예:
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")) }
빌드 명령:
$ go generate $ go build -o main
위 내용은 내 Go 바이너리에 파일을 어떻게 포함할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!