Untersuchung von Methoden um Dateien in Go mit embed zu laden
Es gibt verschiedene Möglichkeiten, Dateien in Go zu laden.
Man kann Dateien mittels os.ReadFile()
lesen oder das embed
-Paket verwenden, um sie einzubinden.
Obwohl die Verwendungszwecke leicht unterschiedlich sind, ist das embed
-Paket besonders nützlich, da es ermöglicht, Dateien bereits beim Build einzubinden – was vor allem bei der Distribution von Vorteil ist.
Betrachten wir ein einfaches Beispiel: Erstellen wir eine txt-Datei wie folgt
Hello, World!
Nun holen wir uns diese Datei mittels des embed
-Pakets:
package main
import (
"fmt"
_ "embed"
)
//go:embed hello.txt
var content string
func main() {
fmt.Println(content)
}
Wird der obige Code ausgeführt, erhält man folgendes Ergebnis:
Hello, World!
Es können nicht nur txt
-Dateien eingebunden werden, sondern praktisch alle Dateitypen wie html
, css
, js
, yaml
usw.
Allerdings sollte man beachten, dass das Einbinden sehr großer Dateien zu einem erheblichen Speicherverbrauch führen kann.