go - Go 有文件名限制吗?

标签 go filenames

我创建了一个带方括号的文件 [id].go但我无法构建它。

当我跑 go build "[id].go" ,我看到以下内容:

can't load package: package main: invalid input file name "[id].go"



Go文件名有限制吗?具体来说,什么是不允许的?如果有,请提供文件。

最佳答案

在撰写本文时,Go 文件必须以以下之一开头:

  • 0通过 9
  • a通过 z
  • A通过 Z
  • . (期)
  • _ (下划线)
  • / (正斜杠)
  • >= utf8.RuneSelf (字符 0x80 或更高)
  • 同一文件夹中的两个或多个文件不能命名为相等(不区分大小写匹配)

  • https://github.com/golang/go/blob/993ec7f6cdaeb38b88091f42d6369d408dcb894b/src/cmd/go/internal/load/pkg.go#L1826-L1835

    To be conservative, we reject almost any arg beginning with non-alphanumeric ASCII.



    例如,如果您尝试 a[id].go作为文件名,您应该很高兴。

    关于go - Go 有文件名限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60140859/

    相关文章:

    linux - grep 命令在 testdir 中工作但不在 "real"目录中

    c# - 给定一个文件系统路径,是否有更短的方法来提取不带扩展名的文件名?

    javascript - 使用正则表达式或 Javascript 从 URL 获取文件名

    go install 不创建包的二进制文件,而 go get 能够

    docker - 从 Dockerfile 定义一个 crontab,利用主机的 crontab 每小时运行一个容器化的 Go 程序

    performance - go 的加速问题

    function - golang : http. get() 返回

    go - 模板不必要地将 `<` 转义为 `&lt;` 但不是 `>`

    java - 在 Java 6(不是 7!)中识别依赖于操作系统的无效文件名字符

    python - 在Python中创建同级文件名