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」をインポートしましたが、パッケージステートメントで別の名前を付けたため、コンパイラはそれを別の名前で呼び出しています。コードでsomethingElseを参照していないため、インポートは使用されません。次に、「pkgname / qp」はqpを定義しないため、どこにも定義されていないqpを参照します(定義されているように見えますが)。
特別な意味を持つ唯一のパッケージ名は、「main」、「C」、および「_something」で終わるパッケージ名(テストおよびプラットフォーム固有のコード)です。
名前が原因でエラーが発生したと主張するコードを表示する必要があります。
のパッケージ名qp
は有効です。例えば、
package main
import "fmt"
import "local/qp"
func main() { fmt.Println(qp.QP()) }
コンパイルしてエラーなしで実行します。