質問: **Q1.Goの「ファイル名」と「パッケージ名」について?** ・何か関係はあるでしょうか ・何れも任意? ・「a.go」ファイルに「package b」でもOK? --- **Q2.Goの「ファイル名」について** ・重要な(よく使う)のは「パッケージ名」? ・import文を使用する際も、ファイル名は指定しない(出来ない)? ・「ファイル名」はどういう時に使用するのでしょうか?
回答: Go において、ファイル名とパッケージ名に関連はありません。ただ、ファイル名に慣習はあります。 Go では、複数のファイルを1つのパッケージに含ませることができます。たとえば `a.go` と `b.go` が共に `package main` であることが可能です。このようにすることでパッケージ内でもプログラムを分割できます。特に、ファイル名または build tag によってビルドするファイルを場合によって変えられるという旨みがあります(マルチプラットフォーム対応に便利です)。他にもテスト用のファイルを別途用意できるという特性もあります。 このため、Go では常にパッケージ単位で `import` します。パッケージ内でプログラムを分ける際にはファイル単位で行います。 より詳しくは、以下のサイトが参考になるでしょう。 * A Tour of Go での package 入門 * Package names -- The Go Blog * Package names -- Effective Go * What are conventions for filenames in Go? -- Stack Overflow