Файл в переменную в Go
Содержимое одного файла можно взять в переменную, если над объявлением стоит директива с именем файла. Компилятор читает файл рядом с исходником при сборке и записывает байты в переменную.
Для строки тип переменной строковый, для
сырых байт подойдет срез байт. Пакет
из стандартной библиотеки подключают
хотя бы пустым импортом, если больше
нигде его не вызывают. Тот же прием с
директивой работает для []byte
вместо строки. Если файл убрать из папки
до сборки, компилятор сообщит об ошибке.
Рядом с main.go лежит note.txt;
вшиваем его в строку и печатаем:
package main
import (
_ "embed"
"fmt"
)
//go:embed note.txt
var note string
func main() {
fmt.Println(note)
}
Содержимое файла на момент сборки такое:
hello from file
Дан файл:
go
Положите его текст в переменную note
типа строка и выведите note.
Дан файл:
42
Положите байты файла в raw типа
срез байт и выведите длину raw.
Скажите, зачем при одной только директиве над строкой подключают пакет пустым импортом.