【发布时间】:2017-01-26 12:56:56
【问题描述】:
尝试从另一个包导入结构类型,它完美返回,但除非在不使用实例化函数的情况下声明,否则无法找到该结构的值。
// X executes and finds values fine, Z does not.
package main
func main () {
x := &Command{}
z := command.NewCommand()
fmt.Println(x.command)
fmt.Println(z.command)
}
package command
type Command struct {
// Our structured data/object for Command
alias string
command string
verbose bool
}
func NewCommand() *Command {
// Creates a new container for []Command objects
return &Command{"","",false}
}
我到底错过了什么……?
【问题讨论】:
-
这是全部来源吗?您应该以某种方式在 main 中导入
command包才能使其正常工作。 -
X和Z与x和z有什么关系? -
X 是 x,Z 是 z(如果您阅读了代码),它们位于不同的文件夹中,并且导入声明不在这里。因为它与以实际方式显示问题无关。
-
请确保上面的示例确实重现了您看到的问题。您的示例缺少导入,对 Command 的引用缺少包,并且命令结构的字段未导出,因此您将无法从任一调用访问它们。我不清楚您所描述的问题是什么,并且由于示例代码已损坏,我无法运行它来尝试找出答案。导入肯定与显示问题相关;没有它,我们无法重现您的问题。
标签: function pointers go struct package