Go パッケージ構造: 「package.go」ファイルは必要ですか、内部ファイルをインポートする方法、およびファイル間の型にアクセスできますか?

Barbara Streisand
リリース: 2024-11-26 04:04:08
オリジナル
419 人が閲覧しました

Go Package Structure: Do We Need a `package.go` File, How to Import Internal Files, and Can We Access Types Across Files?

Go 言語パッケージの構造: 詳細な説明

Go を使用する場合、確立された規則に従うことが重要です。ただし、これらの規則を効果的に実装するには、これらの規則を理解することが最も重要です。この記事では、Go のパッケージ構造に関するよくある質問に取り組みます。

質問

セットアップ: 推奨されるプロジェクト構造に従って、 have:

$GOPATH/
  src/
    github.com/
      username/
        projectname/
          main.go
          numbers/
            rational.go
            real.go
            complex.go
ログイン後にコピー

main.go:

package main

import (
  "fmt"
  "./numbers"
)

func main() {
  fmt.Println(numbers.Real{2.0})
}
ログイン後にコピー

質問:

  • は必要ですか各パッケージ フォルダー内の package.go ファイル?
  • 内のファイルをインポートするにはどうすればよいですか? Numbers.go にも同じパッケージがありますか?
  • real.go で Real のような型を定義し、main.go で fmt.Println(numbers.Real{2.0}) としてアクセスできますか?

答え

1. package.go ファイル

すべてのパッケージ ディレクトリに package.go ファイルが必要であるという前提は間違っています。 Go では、単一ディレクトリ内のファイルは自動的にパッケージにグループ化されます。 package.go ファイルの作成は不要です。

2.パッケージ内のファイルのインポート

Go はファイルのインポートをサポートしていません。パッケージ番号は、rational.go、real.go、complex.go などの個別のファイルではなく、直接インポートする必要があります。この例では、./ 接頭辞を削除し、import "github.com/username/projectname/numbers".

3 を使用します。型の共有

Real のような型は、real.go などのパッケージ内のファイルで定義する必要があります。ファイルは同じパッケージに属しているため、追加の import ステートメントは必要ありません。 main.go の実数型に fmt.Println(numbers.Real{2.0}) としてアクセスするのは正しいです。

以上がGo パッケージ構造: 「package.go」ファイルは必要ですか、内部ファイルをインポートする方法、およびファイル間の型にアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート