导入名为的自定义子包qp
时
"pkgname/qp"
编译器抱怨
... imported and not used: "pkgname/qp"
... undefined: qp
所以很明显包名似乎有问题qp
,因为当我把它改成
qp "pkgname/qp"
错误消失了。
是否有任何“保留”或无效的包名称?为什么会这样?
导入名为的自定义子包qp
时
"pkgname/qp"
编译器抱怨
... imported and not used: "pkgname/qp"
... undefined: qp
所以很明显包名似乎有问题qp
,因为当我把它改成
qp "pkgname/qp"
错误消失了。
是否有任何“保留”或无效的包名称?为什么会这样?
我猜想包 qp 中的文件不是以一行开头的
package qp
他们可能指定了不同的包名称。导入包时,包声明中的名称是可用的名称;如果这与导入路径不匹配,您可能会收到这样的错误。
换句话说,您导入了“pkgname/qp”,但编译器将其称为其他名称,因为您在 package 语句中将其称为其他名称。您没有在代码中引用 somethingElse,因此未使用导入。然后你引用 qp,它没有在任何地方定义(即使它看起来是这样),因为“pkgname/qp”没有定义 qp。
唯一具有特殊含义的包名称是“main”、“C”和以“_something”结尾的(测试和平台特定代码)。
您应该显示您声称由于名称而产生错误的代码。
包名称qp
有效。例如,
package main
import "fmt"
import "local/qp"
func main() { fmt.Println(qp.QP()) }
编译并运行没有错误。