【问题】
折腾:
期间,对于如下代码:
//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