【问题】
折腾:
期间,对于如下代码:
//do some init for crifanLib
func init(){
fmt.Println("init something");
curCookies = nil
}结果出错:
E:\Dev_Root\go\src\EmulateLoginBaidu>go run EmulateLoginBaidu.go # command-line-arguments .\EmulateLoginBaidu.go:99: undefined: init
如图:
即:
| undefined: init |
【解决过程】
1.看起来,很简单,就是没有找到此处我的init函数。
2.添加上return,改为:
//do some init for crifanLib
func init(){
fmt.Println("init something");
curCookies = nil
return
}结果还是同样错误。
3.怀疑init是系统函数,所以改名:
/* Global Variables */
var curCookies []*http.Cookie;
//do some init for crifanLib
func initCrifanLib(){
fmt.Println("init something");
curCookies = nil
return
}
func main() {
initCrifanLib()
}结果还真是,程序就可以正常执行了:
E:\Dev_Root\go\src\EmulateLoginBaidu>go run EmulateLoginBaidu.go init something this is EmulateLoginBaidu.go filenameOnly= EmulateLoginBaidu logFilename= EmulateLoginBaidu.log baiduMainUrl=http://www.baidu.com/ E:\Dev_Root\go\src\EmulateLoginBaidu>
如图:
【总结】
go语言中,不能随便定义自己的名为init的函数
估计是init函数,是go语言中默认的,模块相关的初始化的函数。
所以,此处自己定义一个init函数的话,再去别处调用init(),结果提示找不到init函数。
转载请注明:在路上 » 【已解决】go语言中函数编译出错:undefined: init