我是一个完整的初学者。我刚刚安装了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
答案 0 :(得分:0)
我认为拥有“ package main”是一个问题。 Go与Jupyter一起工作的方式显然不同于Go独自工作的方式。您不需要Jupyter的package语句。
此外,您永远不应致电main()
。当您使用go run
或go build
运行程序时,该操作会自动完成。
我对Jupyter Notebook及其如何使用Go并不熟悉。也许您确实需要调用该函数。如果是这种情况,请不要命名您的函数main
,因为这很容易混淆。
根据我对Jupyter / Go示例的了解,您不需要Go函数,只需列出代码即可。