Есть ли у Go ограничения имени файла? - PullRequest
2 голосов
/ 09 февраля 2020

Я создал файл в квадратных скобках с именем [id].go, но не могу его создать.

Когда я запускаю go build "[id].go", я вижу следующее:

невозможно загрузить пакет: основной пакет: недопустимое имя входного файла "[id]. go"

Существуют ли ограничения для Go имен файлов? В частности, что не разрешено? Пожалуйста, предоставьте документацию, если таковая имеется.

1 Ответ

4 голосов
/ 10 февраля 2020

На момент написания Go файлы должны начинаться с одного из следующих:

  • 0 до 9
  • a до z
  • A - Z
  • . (точка)
  • _ (подчеркивание)
  • / (впереди *) 1043 *)
  • >= utf8.RuneSelf (символ 0x80 или выше)
  • Два или более файлов в одной и той же папке нельзя назвать равными (совпадение без учета регистра)

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

Чтобы быть консервативными, мы отвергаем почти любой аргумент, начинающийся с non-alphanumeri c ASCII.

Например, если вы используете a[id].go в качестве имени файла, вам должно быть хорошо go.

...