#パッケージは関数とデータのコレクションです。パッケージを定義するには、package キーワードを使用します。
は主に Go ソース コードを整理するために使用され、再利用性と読みやすさが向上します。パッケージはコードのカプセル化を提供するため、Go アプリケーションの保守が容易になります。
以下のカスタム パッケージのインスタンスを作成します
パッケージを保存するディレクトリ pac を作成します
mkdir -p $GOPATH/src/test/pac
cd $GOPATH/src/test/pac
ログイン後にコピー
新しいファイル pac.go
package pac
import "fmt"
func Printstr(x string) {
fmt.Println(x + " is pac")
}
ログイン後にコピー
Thisメンテナンスを容易にするため、パッケージ名とディレクトリ名を一致させます。
新しいdemo.goを作成して、カスタマイズしたパッケージを呼び出します。
$GOPATH/src/testディレクトリに作成します。
package main
import "pac"
func main() {
pac.Printstr("this")
}
ログイン後にコピー
実行します。
出力これは pac 、成功の証明です。
上記の例では、インポートされたファイル demo.go とパッケージ ファイル pac.go は同じディレクトリになく、同じパッケージに属していません。では、同じパッケージに属し、同じディレクトリにある 2 つのファイルにアクセスするにはどうすればよいでしょうか? 以下の例を参照してください。
pac2.goを作成します
$GOPATH/src/test/pacディレクトリで
package pac
import "fmt"
func printstr2 (x string) {
fmt.Println(x + " is pac2")
}
ログイン後にコピー
pac.goを変更し、pac.goがpac2.goを呼び出すようにします
package pac
func Printstr(x string) {
//fmt.Println(x + " is pac")
printstr2(x)
}
ログイン後にコピー
Run demo.go
出力結果: pac2
summary
1 プロジェクト ディレクトリが GOPATH 環境で設定されたパスにない場合変数を使用するには、プロジェクトを GOPATH パスに移動するか、GOPATH にプロジェクト パスを設定する必要があります。そうでない場合は、次のようにレポートされます:
demo.go:3:8: cannot find package "pac" in any of:
/usr/lib/golang/src/pac (from $GOROOT)
/home/go/src/pac (from $GOPATH)
ログイン後にコピー
2. import ステートメントではフォルダーの名前が使用されます。
3. パッケージファイル内の関数名の最初の文字は、外部から呼び出せるように大文字になっています。同じパッケージ内のすべてのファイルが相互にアクセスする場合、関数名の最初の文字が大文字か小文字かは関係ありません。
4. メイン パッケージは、同じディレクトリまたはメイン パッケージ内の他のファイルにアクセスできません。
5. フォルダー名とパッケージ名は必ずしも同じである必要はありません。メンテナンスを容易にするために、一貫性を持たせることをお勧めします。
6. カスタム パッケージを呼び出すには、上記の例のようにパッケージ名と関数名を使用します:
pac.Printstr("this")
ログイン後にコピー
さらに関連する知識については、
go 言語に注意してください。チュートリアル列
以上がGo言語でパッケージをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。