いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-07 (Exported names, 公開スコープ, Tour of Go)

概要

Tour of Go の - Exported names についてのサンプル。

tour.golang.org

Goの公開スコープの考え方はとてもシンプル。

大文字で名前が始まっていたらpublicレベル
小文字で始まっていたらパッケージプライベート

めっちゃ分かりやすい。好きです。こういうの。

変数も関数も構造体も定数も、同じ理屈で公開されるスコープが決まります。

サンプル

package tutorial

import "fmt"

// Scope は、 Tour of Go - Exported names (https://tour.golang.org/basics/3) の サンプルです。
func Scope() error {
    // ------------------------------------------------------------
    // Goでは、最初の文字が大文字で始まる名前は外部に公開される。(public扱い)
    // 小文字で始まる名前は外部に公開されない。(private扱い)
    // 公開範囲は、パッケージ単位。なので、小文字の名前をつけた要素も同一パッケージ内
    // では、見ることが出来る。
    // ------------------------------------------------------------
    fmt.Println(packagePrivateFunc())

    return nil
}

// 小文字で始まっているのでこの関数は非公開関数 (パッケージプライベート)
func packagePrivateFunc() string {
    return "This is package-private function"
}

try-golang/tutorial_gotour_03_scope.go at master · devlights/try-golang · GitHub


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com