1 回答
TA贡献1872条经验 获得超3个赞
ccs08对于第一个文件,一切正常,因为代码使用了包的公共成员。但是,第二个文件并非如此。
您提到第二个文件中的代码是从这里复制的。
要了解为什么代码在粘贴到包外的 main 方法时不起作用ccs08,您需要了解它在其原始位置所做的事情。具体这部分:
var (
result bool
zkrp ccs08
)
在原始位置(ccs08包内)有一个名为ccs08. 声明可以在这里看到。上面的代码正在做的是创建一个名为zkrp的变量,其类型是私有结构类型ccs08。然后,在变量上调用的各种函数是绑定到这个私有结构的方法(您可以在此处查看方法)。
现在,在您发布的代码中(粘贴到ccs08包外的位置后),无法访问私有ccs08结构(我什至找不到在 zkrp 源代码中返回它的公共方法)。因此,Go 在尝试执行此代码时看到的是一个错字(它认为您正在尝试编写某种形式的东西package.Member):
// this looks like you wanted to declare a variable with type:
// "ccs08.SomeType" but forgot to write ".SomeType"
// Thus Go gives the error: "use of package ccs08 without selector"
var zkrp ccs08
并且“已导入且未使用”错误是因为该ccs08包未在代码中的任何位置以有效方式使用。
老实说,您复制的代码对于所有字符串的重用ccs08和zkrp不同事物的命名非常令人困惑。我希望这能澄清一点。
- 1 回答
- 0 关注
- 173 浏览
添加回答
举报