最近看到go里有个println的函数,请问下这个函数是不是和fmt.Println这个函数是一样的?为什么println这个函数有时候打印不出东西来而fmt.Println却可以
不一样的。正式环境别用println。println是在C基本实现的;而fmt.Println是Go标准库的;
fmt.Println功能比println强大很多。
#1
更多评论
题主应该是看到使用的时候是fmt.println()吧?在go中println是fmt包下面的一个成员函数,先看段代码:
func Println(a ...interface{}) (n int, err error) {
return Fprintln(os.Stdout, a...)
}
从上面那段代码可以看出,这个函数内部调用了OS包中的成员函数:stdout;
OS包是go与系统硬件打交到的一个包。再追溯到os包中的Stdout函数:
Stdout = getStdHandle(STD_OUTPUT_HANDLE)
上面那一条代码,是os包中的一条声明语句:GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄。
刚刚入门Go不久。希望能够帮到你理解
#2