検索

Golang は、効率的で簡潔かつ安全なプログラミング言語であり、優れた同時実行パフォーマンス、シンプルな構文、読みやすさで人気があります。 Golang では、パッケージはコードを編成するための基本単位であり、各パッケージには複数のファイルを含めることができます。

この記事では、パッケージ名、インポート パス、可視性、バージョン管理、ドキュメント コメントなどの重要な概念を含む、Golang パッケージのセットアップ方法を紹介します。

  1. パッケージ名

Golang では、すべてのファイルがパッケージに属している必要があります。 Golang パッケージは、.go 接尾辞が付いた 1 つ以上のファイルで構成されます。パッケージ名は一意であり、ディレクトリ名と一致している必要があります。

例:

hello という名前のディレクトリに次のコードを書いたとします:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

ディレクトリでターミナルを開いて次のコマンドを実行します:

go run .

は Hello, World! を出力します。この例では、パッケージのディレクトリ名が hello であり、パッケージが他のパッケージに属していないため、パッケージ名 main を使用しました。

  1. インポート パス

Golang では、import キーワードを使用して 1 つ以上のパッケージをインポートします。インポート パスは相対パスまたは絶対パスにすることができます。

相対パス:

src/hello ディレクトリに次のコードを書いたとします:

package main

import "./utils"

func main() {
    utils.PrintMessage("Hello")
}

このディレクトリでターミナルを開き、次のコマンドを実行します:

go run .

Hello が出力されます。この例では、相対パスを使用して utils という名前のパッケージをインポートします。

絶対パス:

$GOPATH/src/example.com/hello ディレクトリに次のコードを書いたとします:

package main

import "example.com/utils"

func main() {
    utils.PrintMessage("Hello")
}

このディレクトリでターミナルを開いて実行します。次のコマンド:

go run .

は Hello を出力します。この例では、絶対パスを使用して utils という名前のパッケージをインポートしました。 example.com は仮想ドメイン名であり、$GOPATH/src/example.com ディレクトリにマップされることに注意してください。

  1. 可視性

Golangでは、変数、定数、関数、構造体などの識別子の可視性が異なります。識別子の可視性は、それが存在するパッケージによって異なります。

パッケージでは、識別子はパブリックまたはプライベートにすることができます。識別子は、それが含まれるパッケージ内でのみ表示されます。

大文字で始まるすべての識別子はパブリックであり、他のパッケージで使用できます。小文字で始まるすべての識別子はプライベートであり、それらが配置されているパッケージ内でのみ使用できます。

たとえば、utils という名前のパッケージには、次のコードが含まれる場合があります:

package utils

import "fmt"

const Pi = 3.14159

func add(x int, y int) int {
    return x + y
}

func PrintMessage(message string) {
    fmt.Println(message)
}

パッケージが他のパッケージで使用される場合、アクセスできるのは公開識別子のみです:

package main

import (
    "example.com/utils"
    "fmt"
)

func main() {
    fmt.Println(utils.Pi)
    utils.PrintMessage("Hello")
}

ディレクトリでターミナルを開き、次のコマンドを実行します。

go run .

は 3.14159 と Hello を出力します。

  1. バージョン管理

Golang では、バージョン管理に go.mod ファイルを使用します。 go.mod ファイルは、現在のモジュールの名前、バージョン情報、依存関係情報を定義します。

Hello プロジェクトで utils という名前のサードパーティ パッケージを使用するとします。次のコマンドを使用して、それを依存関係リストに追加できます:

go get example.com/utils@v1.0.0

このコマンドはパッケージをダウンロードしますutils サードパーティ パッケージ バージョン v1.0.0 という名前を付け、依存関係リストに追加します。 go.mod ファイルに、次のコンテンツが追加されます。

module example.com/hello

go 1.16

require example.com/utils v1.0.0

コードでサードパーティのパッケージを使用する場合、そのパッケージ名を直接インポートできます。例:

package main

import (
    "example.com/utils"
    "fmt"
)

func main() {
    fmt.Println(utils.Pi)
    utils.PrintMessage("Hello")
}
  1. ドキュメント コメント

Golang では、ドキュメント コメントを使用してドキュメントを生成し、コードの読みやすさを向上させます。ドキュメントのコメントは // または / / で始まり、識別子の前に置かれます。 godoc ツールを使用してドキュメントを生成すると、ドキュメントは解析されてドキュメントになります。

たとえば、次はドキュメント コメントを含む関数の例です:

package utils

// add 函数计算两个整数的和。
func add(x int, y int) int {
    return x + y
}

godoc ツールを使用してドキュメントを生成すると、次のコンテンツが表示されます:

FUNCTIONS

func add(x int, y int) int
    add 函数计算两个整数的和。

概要

この記事では、パッケージ名、インポート パス、可視性、バージョン管理、ドキュメントのコメントなど、Golang パッケージ設定の基本概念を紹介します。これらの概念は、Golang を使用してコードを整理するための基本的な知識であり、これらをマスターすると、Golang コードがより標準化され、保守と拡張が容易になります。

以上がGolang パッケージの設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?Mar 03, 2025 pm 05:17 PM

この記事では、Goのパッケージインポートメカニズム:名前付きインポート(例:インポート "fmt")および空白のインポート(例:_" fmt")について説明しています。 名前付きインポートはパッケージのコンテンツにアクセス可能になり、空白のインポートはtのみを実行します

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?Mar 03, 2025 pm 05:18 PM

この記事では、MySQLクエリの結果をGO structスライスに効率的に変換することを詳しく説明しています。 データベース/SQLのスキャン方法を使用して、手動で解析することを避けて強調しています。 DBタグとロブを使用した構造フィールドマッピングのベストプラクティス

Beegoフレームワークのページ間で短期情報転送を実装する方法は?Beegoフレームワークのページ間で短期情報転送を実装する方法は?Mar 03, 2025 pm 05:22 PM

この記事では、Webアプリケーションでのページ間データ転送のためのBeegoのnewflash()関数について説明します。 newflash()を使用して、コントローラー間で一時的なメッセージ(成功、エラー、警告)を表示し、セッションメカニズムを活用することに焦点を当てています。 リミア

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?Mar 10, 2025 pm 05:38 PM

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?Mar 10, 2025 pm 03:20 PM

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

Go言語でファイルを便利に書く方法は?Go言語でファイルを便利に書く方法は?Mar 03, 2025 pm 05:15 PM

この記事では、goで効率的なファイルの書き込みを詳しく説明し、os.writefile(小さなファイルに適している)とos.openfileおよびbuffered write(大規模ファイルに最適)と比較します。 延期エラー処理、Deferを使用し、特定のエラーをチェックすることを強調します。

Goでユニットテストをどのように書きますか?Goでユニットテストをどのように書きますか?Mar 21, 2025 pm 06:34 PM

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?Mar 10, 2025 pm 05:36 PM

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター