在Golang调用Println时,我不能去掉fmt前缀吗

在Golang调用Println时,我不能去掉fmt前缀吗,go,Go,我试过了 这将生成错误: prog.go:3: imported and not used: "fmt" prog.go:6: undefined: Println [process exited with non-zero status] Program exited 这是否意味着我必须在Println前面加上“fmt”包名?在其他语言中,它不是强制性的。如果函数不在当前包中,则必须为其添加前缀 但是,您可以为此包创建别名: import f "fmt" func

我试过了

这将生成错误:

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

Program exited

这是否意味着我必须在Println前面加上“fmt”包名?在其他语言中,它不是强制性的。

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

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

import f "fmt"

func main() {
    f.Println("Hello World")
}
或“重命名”该函数:

import "fmt"

var Println = fmt.Println

func main() {
    Println("Hello World")
}
或者使用
作为别名(这可能是您最想要的):

请注意,在这种情况下,别名不是空的。从围棋开始:

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

QualifiedIdent=PackageName“.”标识符。

还有一个相同的例子:


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

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

import f "fmt"

func main() {
    f.Println("Hello World")
}
或“重命名”该函数:

import "fmt"

var Println = fmt.Println

func main() {
    Println("Hello World")
}
或者使用
作为别名(这可能是您最想要的):

请注意,在这种情况下,别名不是空的。从围棋开始:

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

QualifiedIdent=PackageName“.”标识符。

还有一个相同的例子:


还有一个:在这种情况下,不能使用“\u”别名
\u
前缀:如果以匿名方式导入包,则无法调用其任何函数。它的唯一目的是间接调用包的
init
函数(可能还有其他我没有想到的事情)。我应该注意,给标准库取别名不是一个好的做法。因为只有三个(!)字符,这会降低代码对其他人的可读性。如果要保存手指,请使用自动完成。还有一个:在这种情况下,不能使用“\u”别名
\u
前缀:如果以匿名方式导入包,则无法调用其任何函数。它的唯一目的是间接调用包的
init
函数(可能还有其他我没有想到的事情)。我应该注意,给标准库取别名不是一个好的做法。因为只有三个(!)字符,这会降低代码对其他人的可读性。如果要保存手指,请使用自动完成。
import   "lib/math"         math.Sin
import m "lib/math"         m.Sin
import . "lib/math"         Sin