知识点:
内嵌资源文件
本课内容:
大家好,欢迎来到谷雨课堂
我们日常进行程序开发时,
免不了要引用大量的资源文件,
比如做网站时需要使用很多图片、JS、CSS,
做其它类型的软件也要引用一些不同类型的文件,
通常在进行程序部署时,
我们需要将这些文件同程序一起复制到最终的电脑里,
所以,在不少语言中都提供了资源文件这个功能,
C++、.Net甚至Delphi都有这些功能
所以,我们的Go语言当然也是支持这种功能,
不过使用上是更简单,
我们只需简单的使用
//go:embd dir/filename
var 变量 string
就可以把指定的目录或文件直接导到的变量中了,
没有任何其它的步骤了,
引入后,
我们就可以任何使用这些变量了,
同其它变量一样,
没有任何的区别。
程序开发完毕后,进行打包
go build .
可以直接输出包含所有指定资源文件的二进制可执行文件。
非常的方便,
经过长时间的实际使用,
其效率和性能可以达到预期,
无需担心性能的问题。
不过有一点,
这引起嵌入的资源文件是只读的,
不能进行修改,
如果你的程序需要对文件进行修改、删除等操作,
可以参考
No.040 Go干货!非常好用KV数据库BoltDB
这个KV数据库,
可以实现你需要的功能。
下面是示例代码:
//谷雨课堂
//No.048 Go干货!非常方便的程序内嵌资源文件
package main
import (
"embed"
"fmt"
)
//go:embed imgs
var imgs embed.FS
//go:embed a.txt
var txt1 []byte
//go:embed a.txt
var txt2 string
func main() {
fmt.Println(len(txt1))
fmt.Println(txt1)
fmt.Println(txt2)
x, _ := imgs.ReadDir("imgs")
for i := 0; i < len(x); i++ {
fmt.Println(x[i].Name())
}
}
完整的源代码可以登录【华纳网】下载。
https://www.worldwarner.com/
免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。