在另一个文件中转到公共(public)结构

标签 go

我是 GO 的新手,不了解一些基础知识 - 所以我真的不知道如何向谷歌询问。所以 我有一个包含 2 个文件的项目,它们都在 main 包中——src 的根目录。一个文件是main.go

package main

var (
    node * NodeDTO
)

func main() {
    node = &NodeDTO{ID: 1}
}

还有一个是dto.go with

package main

type NodeDTO struct {
    ID int
}

所以 main.go 告诉我 - “undefined: NodeDTO”。 但是如果我在 main.go 附近创建一个 dir dto 并从那里使用我的 NodeDTO 就像

package main

import "another_tcp_server/dto"

var (
    node * dto.NodeDTO
)

func main() {
    node = &dto.NodeDTO{ID: 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.godto.go

使用完整的 .go 源文件列表:

$ go run main.go dto.go
$ 

关于在另一个文件中转到公共(public)结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51271886/

相关文章:

dictionary - 获取 map 键之间的所有范围

c - Windows DLL 文件的正确构建模式是什么?

reflection - 如何从 golang 中的 reflect.Value 获取潜在值(value)?

go - 从 golang 中的索引 PNG 文件中获取像素颜色编号

go - 我将如何在 golang 中进行完美的时间还原?

javascript - 如何操作我们在golang中发送和接收的数据

go - 带范围限制的 typedef

postgresql - 如何修复 "missing FROM-clause entry for table"错误

api - 如何在Golang中指定Docker API设置?

go - 使用 Kubernetes client-go 创建作业