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"包裹名字 ?在其他语言中,它不是强制性的。
答案 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