gpt4 book ai didi

来自其他包的 golang 结构

转载 作者:IT王子 更新时间:2023-10-29 01:48:53 25 4
gpt4 key购买 nike

情况:

我有以下项目结构:

root
parser
parser.go
builtin
exit.go
hi.go
structs
base_structs.go
main.go

.. base_structs.go 文件如下所示:

package structs

type Built_in_func func([] string)

type Built_in struct {
s string
f Built_in_func
}

我已将包导入到我的 main.go 中,并使用 structs.Built_in 引用该结构。

这就是我想要做的:

var builtin_list [] structs.Built_in

builtin_list = append(builtin_list, structs.Built_in{s:"exit", f:builtin.Exit})
builtin_list = append(builtin_list, structs.Built_in{s:"hi", f:builtin.Hi})

但是我收到了这个错误:

unknown structs.Built_in field 's' in struct literal

问题:

我做错了什么?

最佳答案

在 Go 中,名称在包外的可见性取决于它的第一个字符是否大写。

所以字段 s 实际上从包 structs 外部是不可见的,你会得到那个错误。

如果您像这样定义结构(注意大写):

type Built_in struct {
S string
F Built_in_func
}

然后这将起作用(再次大写):

structs.Built_in{S:"exit", F:builtin.Exit}

您可以在这里阅读更多内容:

https://golang.org/doc/effective_go.html#names

关于来自其他包的 golang 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363448/

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