在 Go 中,包封装了相关的代码和数据。要在另一个包中重用一个包中的功能,您必须将第一个包导入到后者中。
考虑以下项目结构:
src |-->config |--> config.go |-->otherPackage |--> otherFile.go |-->main.go
文件 config.go 包含 Config 的类型定义:
package config type Config struct { // ... }
你想要使用文件 otherFile.go 中的 Config 类型:
package otherPackage func SomeFunction(target float64, entries [2]float64, config config.Config) { // ... }
尝试导入配置包时,您遇到以下错误:
第一个错误表明您已经导入了配置包,但没有在代码中的任何地方使用它。第二个错误表明 Config 类型在当前范围内无法识别。
要解决此问题,您需要使用其完整名称导入包路径而不是相对路径。此外,在代码中引用 Config 类型时,您需要使用其包名称来限定它。
package otherPackage import ( "fmt" "math" "your-project/src/config" ) func SomeFunction(target float64, entries [2]float64, config config.Config) { // ... }
通过导入包及其完整路径,您可以明确说明在哪里可以找到 Config 类型。使用包名称限定类型可确保编译器知道您引用的是哪个 Config 类型。
注意:如果您导入的包名称与变量或类型相同您当前的范围,您将需要重命名变量或类型以避免冲突。
以上是Go 中如何在另一个包中使用一个包中定义的类型?的详细内容。更多信息请关注PHP中文网其他相关文章!