【Golang】package(パッケージ)とは?使い方を解説します!

Golang

パッケージは、コードの再利用の原則、別名DRY(Don’t Repeat Yourself)の原則を重視することができます。

これにより、構造化された方法で簡潔なコードを書くことができるようになります。

この投稿では、Goのパッケージについて詳しく解説します。

Golangのパッケージとは

パッケージとは、基本的に、ある特定の目的のためのソースコードのコンテナのことです。

例えば、io パッケージには入出力システムのコードが含まれ、fmt パッケージは文字列のフォーマットとコンソールへのロギングを扱います。

package(パッケージ)のインポート方法

パッケージを使用するためには、パッケージをインポートする必要があります。

パッケージをインポートしても使用しない場合、Goはエラーを出します。そうしないと、空白の識別子を使わなければならなくなるので、注意が必要です。

単一のパッケージをimportする場合↓

import "パッケージ名"  

複数のパッケージをimportする場合↓

import (
    "パッケージ名1"
    "パッケージ名2"
)

パッケージのエイリアスとインポートを無視する方法

インポートする際のパッケージは、以下のようにエイリアスすることができます。

package main
 
import f "fmt"
 
func main() {
        f.Println("Hiii")   // Hiii
}

インポートの無視は、パッケージインポートの前に空白の識別子を置いたときに発生します。

これによってimport but not usedのエラーは無視されます。以下はその方法です。

package main
 
// 空白識別子でimportを無視する
import _ "fmt"
 
func main(){
    // パッケージを使わなくてもエラーが起きない
}

package(パッケージ)のexportとnon-export

パッケージの項目は、正しくエクスポートされた場合のみアクセス可能です。そうでなければ、プライベートなものであり、その内部にしかアクセスできません。

package hello
 
var Hello := "Hello World"     // 最初の文字が大文字だとexportされpublicであることを意味する
var bye   := "See ya all"      // 最初の文字が小文字だとnon-exportでありprivateとなる

項目をエクスポートするには、その最初の文字を大文字にするだけです。これは、パッケージ内でエクスポートされるメンバーを作成するときのルールです。

パッケージのネスト

パッケージは任意の深さまで入れ子にすることができます。つまり、1つのパッケージが複数のサブパッケージを含むことができます。

こんな感じ↓

packageone/
  |--packagetwo/
  |--packagethree/
    |--packagefour/

カスタムパッケージの作成

カスタムパッケージを作成するのは簡単な作業です。カスタムパッケージのためのディレクトリを作成する必要があります。

以下は、基本的なカスタムパッケージの例です。

タイトルとURLをコピーしました