Embed di files in Go

Mattepuffo's logo
Embed di files in Go

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!


Condividi

Commentami!