Golangのパッケージの周りを頭で囲みました。サブパッケージ機能が正しくインポートされていません。
これは私がSomefunc
ので、その印象の下にあった私のワークスペース
/bin
/pkg
/src
/github.com
/esbenp
/testrepo
/subpackage
somefuncs.go
main.go
main.go
package main
import "github.com/esbenp/testrepo/subpackage"
func main() {
Somefunc()
}
somefuncs.go
package subpackage
import "fmt"
func Somefunc() {
fmt.Printf("yo")
}
です大文字で始まり、それをインポートした他のファイルで使用するためにエクスポートされます。私がコンソールに出す出力はです。
main.go:4: imported and not used: "github.com/esbenp/testrepo/subpackage"
main.go:8: undefined: Somefunc
誰かが正しい方向に向いていますか?
はないにも精神的に、「サブパッケージ」と呼んではいけません。 「サブ」パッケージという本物の概念はありません。パッケージはどこかに存在しなければならず、これらのディレクトリはファイルシステムに入れ子になっています。しかし、このファイルシステムネストは、パッケージの使用方法、インポート方法、アクセス方法に意味を持ちません。 (Nitpick:goツールは、vendor、internal、testdataのようなファイルシステムフォルダを扱い、サブパッケージという概念を持っています)。 – Volker