小编典典

'.' 是什么意思?(点或句点)在 Go 导入语句中做什么?

all

在 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"    
)

.(句号)的意义是什么?


阅读 394

收藏
2022-08-07

共1个答案

小编典典

它允许在没有限定符的情况下在本地文件块中引用导入包中的标识符。

如果出现显式句点 (.) 而不是名称,则所有包的导出标识符都将在当前文件的文件块中声明,并且可以在没有限定符的情况下访问。

假设我们编译了一个包含 package 子句 package math 的包,该包导出函数
Sin,并将编译后的包安装在由“lib/math”标识的文件中。此表说明了如何在各种类型的导入声明之后在导入包的文件中访问 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

2022-08-07