41603


**Q1.Goの「ファイル名」と「パッケージ名」について？**  
・何か関係はあるでしょうか  
・何れも任意？  
・「a.go」ファイルに「package b」でもOK？

* * *

**Q2.Goの「ファイル名」について**  
・重要な(よく使う)のは「パッケージ名」？  
・import文を使用する際も、ファイル名は指定しない(出来ない)？  
・「ファイル名」はどういう時に使用するのでしょうか？


CC BY-SA 3.0
2018-02-09T02:13:42.800
41599
2018-02-09T04:40:06.773
7886
question
go
Goの「ファイル名」と「パッケージ名」について


Go において、ファイル名とパッケージ名に関連はありません。ただ、ファイル名に慣習はあります。

Go では、複数のファイルを1つのパッケージに含ませることができます。たとえば `a.go` と `b.go` が共に `package main`
であることが可能です。このようにすることでパッケージ内でもプログラムを分割できます。特に、ファイル名または [build
tag](https://golang.org/pkg/go/build/#hdr-Build_Constraints)
によってビルドするファイルを場合によって変えられるという旨みがあります（マルチプラットフォーム対応に便利です）。他にもテスト用のファイルを[別途用意できる](https://golang.org/cmd/go/#hdr-
Test_packages)という特性もあります。

このため、Go では常にパッケージ単位で `import` します。パッケージ内でプログラムを分ける際にはファイル単位で行います。

より詳しくは、以下のサイトが参考になるでしょう。

  * [A Tour of Go での package 入門](https://go-tour-jp.appspot.com/basics/1)
  * [Package names](https://blog.golang.org/package-names) \-- The Go Blog
  * [Package names](https://golang.org/doc/effective_go.html#package-names) \-- Effective Go
  * [What are conventions for filenames in Go?](https://stackoverflow.com/q/25161774/5989200) \-- Stack Overflow


CC BY-SA 3.0
2018-02-09T04:31:02.743
41603
2018-02-09T04:40:06.773
2018-02-09T04:40:06.773
19110
19110
41599
answer