一尘不染

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

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”软件包名称前缀?在其他语言中,这不是强制性的。


阅读 247

收藏
2020-07-02

共1个答案

一尘不染

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

但是,您可以为此包创建一个别名:

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
规格

合格标识符是具有包名前缀的合格标识符。软件包名称和标识符都不能为空。

QualifiedIdent = PackageName "." identifier .

另一个来自相同规格的示例:

import   "lib/math"         math.Sin
import m "lib/math"         m.Sin
import . "lib/math"         Sin
2020-07-02