Go パッケージに関する次の主張は正確ですか?
import "package_name"
$GOPATH、ユーザーの go ディレクトリを保持する変数、または標準の go インストール ディレクトリ ツリーにあると仮定して、package_name という名前のディレクトリからすべてのファイルをインポートします。package_name ディレクトリ内のファイルは、通常、
package package_name
. しかし、それらは必須ではありません。実際、は、インポートされた package_name ディレクトリにファイルが見つかった場合、import "package_name"
その行を含むファイルもインポートします。package foo
大文字で始まるすべての関数は、パッケージの package_name 宣言で指定された名前を介してアクセスされます。たとえば、次のようになります。
package_name.Function_in_file_that_declares_package_name
またother_than_package_name.Function_in_file_that_declares_other_than_package_name
- ユーザー定義パッケージは
go install
、パッケージ ディレクトリ内からコマンド ラインで実行されます。ただし、go は組み込みパッケージ ディレクトリと同じ名前のディレクトリのインストールを拒否します。たとえば、go には既に組み込みパッケージ「strings」用の string ディレクトリがあるため、strings ディレクトリをインストールすることはできません。ただし、ユーザーは、組み込みの string フォルダーを変更せずに、my_strings ディレクトリを作成し、その中に記述されているファイルを配置することで、strings パッケージに関数を追加できますpackage strings
。ここで、 でimport my_strings
アクセスされる追加のユーザー定義文字列関数をロードしますstrings.Function_name
。
要約すると、import
キーワードは、特定のディレクトリからファイルをロードするために使用されます。また、キーワードpackage
は、そのファイルの外部から大文字の関数にアクセスするための名前空間を作成します。
上記のすべてを正しく理解していますか?