【已解决】go语言中函数编译出错:undefined: init

【问题】

折腾:

【已解决】go语言中的全局变量

期间,对于如下代码:

//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

如图:

go code function error 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 code can run with self init func

 

【总结】

go语言中,不能随便定义自己的名为init的函数

估计是init函数,是go语言中默认的,模块相关的初始化的函数。

所以,此处自己定义一个init函数的话,再去别处调用init(),结果提示找不到init函数。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量