如果在go 1.16 版本之前,我们如果定义一个很长的字符串,通常会这样定义。
const (
TemplateStr = `
bala bala bala
为啥我要写这段话呢?
第一,是为了模拟构造一个一个很长的字符串
第二,也行你也看出来了,因为没有办法,为了凑字数
因为规定文章必须满足300字才能发
`
)
上面的代码是不是很长得很丑陋,在代码里面定义一个很冗长的字符串,那么在1.16 版本以后就简单了。直接通过go:embed 嵌入功能就可以直接将文件内容嵌入到TemplateStr这个字符串变量里面
//go:embed template.txt
var TemplateStr string
接下来就可以愉快地使用这个变量了。但个人感觉这种方式并不好,主要是因为上面我定义的字符串是一个常量,常量本身就代表不可变。其他开发者可以使用我定义的常量,但不能修改其内容。如果换成这种 var 变量定义,就意味着这个值是可以被覆盖的,这就和原本的语义不一致了。所以这里我个人还有觉得有点不太好的。