1.iota简介2.go generate命令简介3.golang uuid库介绍4.gRPC基本教程5.protolator简介6.Govulncheck v1.0.0 发布了!7.每日一库:GORM简介8.Go泛型简介9.Go 1.21发布!10.Golang zip压缩文件读写操作11.本地搭建playground12.zap自定义日志级别13.Gorm日志设置14.gin启动https支持15.Go Plugin介绍16.Golang漏洞管理17.可以丢掉123456了18.如何优雅地退出程序19.PGO前瞻20.go多版本管理21.openAI发布v0.2.0了22.Gin中间件开发23.Fabric区块链浏览器(1)24.每日一库:Memcache25.protojson简介26.每日一库:gosec27.Fabric区块链浏览器(2)28.每日一库:fsnotify简介29.gRPC with JWT
30.embed简介
go embed
是 Go 1.16 中引入的特性,它允许将文件嵌入到 Go 代码中,以便在运行时访问这些文件。这对于将静态资源(如 HTML、CSS、JavaScript 文件)直接嵌入到 Go 二进制文件中,以及简化文件分发和部署非常有用。下面是关于 go embed
的详细介绍:
使用方式:
go embed
支持将文件嵌入到代码中的两种方式:
-
嵌入单个文件:
package main import ( _ "embed" "fmt") //go:embed myfile.txtvar content string func main() { fmt.Println(content)}
-
嵌入多个文件:
package main import ( _ "embed" "fmt") //go:embed file1.txt file2.txtvar content string func main() { fmt.Println(content)}
使用步骤:
- 导入
_ "embed"
包,这样embed
包就会被初始化。 - 在变量声明前使用
//go:embed
注释,指定要嵌入的文件。你可以指定单个文件,也可以指定多个文件,用空格分隔。
访问嵌入文件:
使用 embed
包嵌入的文件是一个 string
、 []byte
或 embed.FS
类型的变量,你可以直接在代码中访问它们。在运行时,这些变量会被初始化为嵌入文件的内容。
用途:
- 将静态资源嵌入到 Go 二进制文件中,以便简化部署。
- 将配置文件或其他数据文件嵌入到应用程序中,无需外部文件依赖。
- 减少文件的分发和管理成本。
注意事项:
- 嵌入的文件内容会在编译时打包到二进制文件中,因此可能会增加二进制文件的大小。
- 嵌入的文件内容是只读的,无法在运行时修改。
- 嵌入文件的大小应适度,避免过大导致二进制文件过大。
//go:embed
指令只能用于全局变量,不能用于函数内的局部变量。同时,它只能嵌入在 Go 源代码文件同一目录或子目录下的文件或目录。
总之,go embed
是一个强大的特性,使得在 Go 代码中嵌入文件变得更加方便和简单,特别是在需要将静态资源或配置文件包含在应用程序中时。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END