为什么Go语言没有嵌入文件的功能?

5
我正在尝试在我的Go应用程序中嵌入一个文本文件,但我无法弄清楚为什么它不起作用。
我在与我的Go程序相同的目录中有一个名为“hello.txt”的文件,但是当我编译和运行下面的代码时,它不会打印任何内容,而应该打印hello.txt的内容。
package main

import (
    _ "embed"
    "fmt"
)

// go:embed hello.txt
var hello string

func main() {
    fmt.Println(hello)
}

我还尝试将hello作为[]byte,甚至使用文件系统并列出所有文件,但两者都显示没有嵌入任何内容。

1个回答

18
< p >在< code >//和< code >go:embed之间不能有空格,否则编译器会将其视为注释。

虽然embed文档没有明确说明这一点,但它在go编译文档中有解释。

< blockquote >

编译器接受以注释形式的指令。 为了将其与非指令式注释区分开来,指令不需要在注释开始符号和指令名称之间加空格。 然而,由于它们是注释,因此对于不知道指令约定或特定指令的工具,可以像处理其他注释一样跳过指令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接