2015/08/20

Recent entries from same category

  1. Go で大文字小文字無視の文字列比較ベンチマーク
  2. Go で型がインタフェースを実装している事を保証するには
  3. 改訂2版 みんなのGo言語
  4. Go のポインタの躓きやすい点
  5. TensorFlow Lite の Go binding を書いた。

golang 1.5 がリリースされました。

Go 1.5 is released - The Go Blog

Go 1.5 is released 19 August 2015 Today the Go project is proud to release Go 1.5, the sixth major s...

https://blog.golang.org/go1.5

内容かなり盛りだくさんです。その中でも目を引くのが internal パッケージです。

golang ではパッケージ内のシンボルを外部から参照可能にする為に名称の先頭を大文字にする必要があります。しかしながら、そうしてしまうと無関係のパッケージからも参照可能になってしまう問題がありました。

ライブラリパッケージを作っていて内部の共通関数を切り出したい、しかしながらライブラリ以外の物からは使わせたくない、そういう場合に internal を使います。

mattn/go15internal · GitHub
https://github.com/mattn/go15internal

このライブラリパッケージは、foo および bar からそれぞれ internal/hello にある Hello を呼び出していますが、これを外部から呼び出そうとすると以下の様にエラーとして扱ってくれます。

c:\dev\go\src\github.com\mattn\go15internal_main>go build -x
WORK=C:\Users\mattn\AppData\Local\Temp\go-build408769714
package github.com/mattn/go15internal_main
        imports github.com/mattn/go15internal/internal/hello: use of internal package not allowed

どんどん使っていきましょう。

Posted at by | Edit


blog comments powered by Disqus