不能在Golang中调用Println时摆脱fmt前缀

时间:2014-07-18 10:27:08

标签: go

我尝试了http://tour.golang.org/#1

package main

import "fmt"

func main() {
    Println("Hello World")
}

这会产生错误:

prog.go:3: imported and not used: "fmt"
prog.go:6: undefined: Println
 [process exited with non-zero status]

Program exited

这是否意味着我有责任在Println前加上" fmt"包裹名字 ?在其他语言中,它不是强制性的。

1 个答案:

答案 0 :(得分:9)

如果函数不在当前包中,则必须为函数添加前缀。

但是,您可以为此程序包创建别名:

import f "fmt"

func main() {
    f.Println("Hello World")
}

“重命名”功能:

import "fmt"

var Println = fmt.Println

func main() {
    Println("Hello World")
}

或者使用.作为别名(可能是您最想要的):

import . "fmt"

func main() {
    Println("Hello World")
}

请注意,在这种情况下,别名不是空白。来自Go的specifications

  

限定标识符是使用包名称前缀限定的标识符。包名称和标识符都不能为空。

     

QualifiedIdent = PackageName "." identifier .

来自同一specifications的另一个例子:

import   "lib/math"         math.Sin
import m "lib/math"         m.Sin
import . "lib/math"         Sin