Go言語の情報の可視性についてのルールは単純です。名前(トップレベルの型名、関数名、メソッド名、定数名、変数名、構造体のフィールドおよびメソッド名)の先頭一文字が大文字になっていれば、パッケージの利用者側から参照可能となります。すなわち大文字にしなければ、それが定義されているパッケージ内からしか参照できません。このルールはコンパイラによって実施されるため、絶対的なルールとなっています。この外部パッケージから可視状態であることをGo言語の用語で「エクスポートされた(exported)」と言います。 Goプログラミング言語のチュートリアル - golang.jp Go言語でのスコープは3つかな? 関数、if 文などの()、{}の中 Package内 Packageの外部 同一パッケージ内であれば、異なるファイルでも非公開関数や変数を参照できるみたい。 ある1つのファイルで定義した非公開変数を、