1. ホーム
  2. import

[解決済み] Goのインポート文の'.'(ドットまたはピリオド)は何をするのですか?

2022-04-23 10:38:44

質問

Goチュートリアルや、私が見たほとんどのGoコードでは、パッケージはこのようにインポートされています。

import (
    "fmt"
    "os"
    "launchpad.net/lpad"
    ...
)

しかし http://bazaar.launchpad.net/~niemeyer/lpad/trunk/view/head:/session_test.go を使用すると、gocheckパッケージがインポートされます。 . (ピリオド)です。

import (
    "http"
    . "launchpad.net/gocheck"
    "launchpad.net/lpad"
    "os"    
)

の意味は何ですか? . (ピリオド)ですか?

解決方法は?

インポートしたパッケージの識別子を、ローカルのファイルブロック内で修飾語なしで参照できるようになります。

名前の代わりに明示的なピリオド (.) が現れると、パッケージのエクスポートされた識別子はすべて現在のファイルのファイルブロックで宣言され、修飾子なしでアクセスできるようになります。

関数 Sin をエクスポートするパッケージ節 package math を含むパッケージをコンパイルし、コンパイルしたパッケージを "lib/math" で識別されるファイルにインストールしたと仮定します。この表は、さまざまなタイプの import 宣言の後にパッケージを import するファイルにおいて、Sin がどのようにアクセスされるかを示しています。

Import declaration          Local name of Sin

import   "lib/math"         math.Sin
import M "lib/math"         M.Sin
import . "lib/math"         Sin

参考 http://golang.org/doc/go_spec.html#Import_declarations