Goのパッケージ

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

パッケージの作り方

Goでパッケージを作るのはpythonと似ています。

まずはフォルダ構成を下記のようにします。

/
| - main.go
| - moke/
  | - obj.go

この"moke"というフォルダ名がパッケージ名になります。

mokeフォルダ内のobj.goは下記のように書きます。

package moke

type Moke struct {
        name  string
        Level int
}

func NewMoke(n string, l int) Moke {
        return Moke{n, l}
}

func (m *Moke) Dump() string {
        return "Name is " + m.name
}

mokeパッケージ内なので、1行目はpackage mokeにします。

今回は、struct Mokeのnameを小文字で始めてみました。このメンバー変数はmokeパッケージ内のみアクセス可能になります。

つまり、外部から下記のようにしてオブジェクトを作ることができなくなります。

//main.go
package main

func main() {
        m := moke.Moke{"name", 1} // コンパイルエラー。"name"はmainパッケージからは見えない
}

1行目のpackage名を間違えたらどうなる?

パッケージ利用者からは見えなくなるようです。使い道あるのかな。。。?

1つ上へ / ブログトップへ