gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:53 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com