首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go程序例子(70):Embed

Go程序例子(70):Embed

原创
作者头像
用户11078756
发布2025-01-20 11:29:17
发布2025-01-20 11:29:17
22400
代码可运行
举报
文章被收录于专栏:go程序例子go程序例子
运行总次数:0
代码可运行

//go:embed 是一个编译器指令,允许程序在构建时将任意文件和文件夹包含到 Go 二进制文件中。你可以在这里阅读更多关于 embed 指令的内容。

代码语言:javascript
代码运行次数:0
运行
复制
package main
// 导入 embed 包;如果你没有使用该包中的任何导出标识符,可以使用空白导入 _ "embed"。
import (
    "embed"
)
// embed 指令接受相对于包含 Go 源文件的目录的路径。该指令将文件的内容嵌入到紧随其后的字符串变量中。
//go:embed folder/single_file.txt
var fileString string
// 或者将文件的内容嵌入到一个 []byte 中。
//go:embed folder/single_file.txt
var fileByte []byte
// 我们还可以使用通配符嵌入多个文件甚至整个文件夹。这需要使用 embed.FS 类型的变量,它实现了一个简单的虚拟文件系统。
//go:embed folder/single_file.txt
//go:embed folder/*.hash
var folder embed.FS

func main() {
		// 打印出 single_file.txt 的内容。
    print(fileString)
    print(string(fileByte))
		// 从嵌入的文件夹中获取一些文件。
    content1, _ := folder.ReadFile("folder/file1.hash")
    print(string(content1))

    content2, _ := folder.ReadFile("folder/file2.hash")
    print(string(content2))
}

使用这些命令来运行示例。(注意:由于 Go Playground 的限制,此示例只能在本地机器上运行。)

运行结果:

代码语言:javascript
代码运行次数:0
运行
复制
➜ go run embed-directive/embed-directive.go                                
This is a single file
This is a single file
This is file 1
This is file 2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档