我对GO还是很陌生,不了解一些基本知识-所以我真的不知道如何向Google询问。所以 我有一个包含2个文件的项目,两个文件都位于包main中-src的根。一个文件是main.go
package main
var (
node * NodeDTO
)
func main() {
node = &NodeDTO{ID: 1}
}
另一个是dto.go与
package main
type NodeDTO struct {
ID int
}
所以main.go告诉我-“未定义:NodeDTO”。 但是,如果我在main.go附近创建dir dto并从那里使用NodeDTO
package main
import "another_tcp_server/dto"
var (
node * dto.NodeDTO
)
func main() {
node = &dto.NodeDTO{ID: 1}
}
没关系。请告诉我为什么会这样吗?
答案 0 :(得分:1)
您似乎有:
$ ls
dto.go main.go
$ cat main.go
package main
var (
node * NodeDTO
)
func main() {
node = &NodeDTO{ID: 1}
}
$ cat dto.go
package main
type NodeDTO struct {
ID int
}
$
您似乎正在运行:
$ go run main.go
# command-line-arguments
./main.go:4:12: undefined: NodeDTO
./main.go:8:13: undefined: NodeDTO
$
go run
的帮助包括:
$ go help run
usage: go run [build flags] [-exec xprog] package [arguments...]
Run compiles and runs the named main Go package.
Typically the package is specified as a list of .go source files,
but it may also be an import path, file system path, or pattern
matching a single known package, as in 'go run .' or 'go run my/cmd'.
您使用了.go源文件列表:go run main.go
。您列出了一个文件。您有两个文件:main.go
和dto.go
。
使用.go源文件的完整列表:
$ go run main.go dto.go
$