Возникли проблемы с началом работы.`пакет main` выбрасывает индекс ошибки времени выполнения вне диапазона? - PullRequest
0 голосов
/ 28 октября 2018

Я полный новичок в го.И я только что установил gophernotes и намереваюсь использовать Jupyter Notebook для основного программирования.

Эта программа выдает следующую ошибку при запуске в Jupyter:

Cell1: package main
Out1: runtime error: index out of range
Cell2: import "fmt"
      func main() {
          fmt.Println("hello world")
      }
      main()
Out2: hello world

Когда я пишу то же самое в test.go и выполняю из bash: go run test.go, я получаю следующее:

Deepaks-MacBook-Air:JUPYTER deepak$ go run test.go 
go: disabling cache (/Users/deepak/Library/Caches/go-build) due to initialization failure: open /Users/deepak/Library/Caches/go-build/log.txt: permission denied
# command-line-arguments
./test.go:6:1: syntax error: non-declaration statement outside function body

1 Ответ

0 голосов
/ 28 октября 2018

Я думаю, что наличие «основной упаковки» является проблемой. То, как Go работает с Jupyter, очевидно, отличается от того, как Go работает сам по себе. Вам не нужен пакетный оператор с Jupyter.

Также никогда не звоните main(). Это делается автоматически при запуске программы с go run или go build.

Я не знаком с Jupyter Notebook и тем, как он использует Go. Может быть, вам нужно вызвать функцию. Если это так, не называйте вашу функцию main, потому что это просто сбивает с толку.

Из того, что я видел в примерах Jupyter / Go, вам не нужна функция Go, вы можете просто перечислить код.

...