问题没有出现在我的问题选项卡上,但是当我尝试 运行 时出现恐慌
The problem didnt show up on my Problem tab, but there is panic when i am trying to run it
我制作了 3 个 go 文件,每个文件都使用相同的包,即 package main。
它看起来像这样...
mydir/
-client.go
-room.go
-main.go
在我的终端中,没有出现任何问题,但是当我尝试 run/build main.go 时,它返回了一个恐慌:
undefined: newRoom
这是我的代码片段,它有恐慌:
//main.go
r := newRoom()
//room.go
func newRoom() *room{
return &room{}
}
当我尝试删除该函数时,它在 Visual Code 中返回错误“Undeclared”。再次添加时,问题消失了,但是当我尝试 运行 或构建它时,如果我的 newRoom 函数未定义,它会 returns 出错。有没有人知道,它有什么问题?
最好能解释一下为什么它没有出现在 Visual Code Problems 输出中。
这是从包含一堆文件的目录构建二进制文件的命令:
go build ./mydir/...
此命令在 mydir
文件夹中构建包,所有包递归。 运行 go help build
以获取有关 build
命令的更多信息。
您的代码没有任何问题。
当您尝试构建 main.go
时,编译器只能看到 main.go
文件,这就是为什么错误显示为“未定义的新房间”
如果你的目录的第一级有多个 go 文件,你应该使用 go build .
而不是 go build main.go
。
我制作了 3 个 go 文件,每个文件都使用相同的包,即 package main。 它看起来像这样...
mydir/
-client.go
-room.go
-main.go
在我的终端中,没有出现任何问题,但是当我尝试 run/build main.go 时,它返回了一个恐慌:
undefined: newRoom
这是我的代码片段,它有恐慌:
//main.go
r := newRoom()
//room.go
func newRoom() *room{
return &room{}
}
当我尝试删除该函数时,它在 Visual Code 中返回错误“Undeclared”。再次添加时,问题消失了,但是当我尝试 运行 或构建它时,如果我的 newRoom 函数未定义,它会 returns 出错。有没有人知道,它有什么问题?
最好能解释一下为什么它没有出现在 Visual Code Problems 输出中。
这是从包含一堆文件的目录构建二进制文件的命令:
go build ./mydir/...
此命令在 mydir
文件夹中构建包,所有包递归。 运行 go help build
以获取有关 build
命令的更多信息。
您的代码没有任何问题。
当您尝试构建 main.go
时,编译器只能看到 main.go
文件,这就是为什么错误显示为“未定义的新房间”
如果你的目录的第一级有多个 go 文件,你应该使用 go build .
而不是 go build main.go
。