Embed di files in Go
go:embed è una direttiva introdotta in una delle ultime versioni di Go.
E' molto utile per fare l'embed di files e directories.
In questo articolo vediamo un paio di esempi introduttivi.
Ovviamente i files devono stare dentro alla stessa directory dell'eseguibile/progetto.
Cominciamo con un singolo file, che io ho chiamato test.txt:
package main
import (
_ "embed"
"fmt"
)
//go:embed test.txt
var test string
func main() {
fmt.Println(test)
}
Supponiamo di avere più files all'interno della cartella tests:
package main
import (
"embed"
"fmt"
)
//go:embed all:tests
var testi embed.FS
func main() {
files, _ := testi.ReadDir("tests")
for _, file := range files {
data, _ := testi.ReadFile(file.Name())
fmt.Println("File " + file.Name() + ": " + string(data))
}
}
Enjoy!
go embed
Commentami!