go - 开始时遇到困难。 `package main` 引发运行时错误 - 索引超出范围?

标签 go jupyter-notebook program-entry-point

我是围棋的初学者。而我刚刚安装了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

最佳答案

我认为拥有“package main”是个问题。 Go 与 Jupyter 一起工作的方式显然不同于 Go 单独工作的方式。您不需要 Jupyter 的包声明。

此外,您永远不应该调用 main()。当您使用 go rungo build 运行程序时,这是自动完成的。

我不熟悉 Jupyter Notebook 以及它如何使用 Go。也许您确实需要调用该函数。如果是这种情况,请不要将您的函数命名为 main,因为那样只会造成混淆。

根据我所见的 Jupyter/Go 示例,您不需要 Go 函数,只需列出代码即可。

关于go - 开始时遇到困难。 `package main` 引发运行时错误 - 索引超出范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53028812/

相关文章:

git - 当 $PATH 中有多个 git 可用时, 'go get' 使用哪个 git 版本?

go - golang中map的Big O表现如何?

python-3.x - Jupyter 笔记本中的线程

c++ - 我应该在主函数内部还是外部声明一个变量?

c - 使用主入口点将 HINSTANCE 传递给 WNDCLASS

go - 如何检查 Cloud Pub/Sub 模拟器是否已启动并正在运行?

go - 如何使用 golang 从 windows/registry 返回默认值

python - 创建/分发基于 Jupyter Notebook/Jupyter Lab 的独立应用程序的最佳方式?

matplotlib - 使用深色 iPython Notebook 配置文件显示 Seaborn/Matplotlib 绘图的最佳方式

java - Java中的main和constructor可以一起放在一个类中吗