最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

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

GO crifan 12630浏览 0评论

【背景】

折腾:

【记录】用go语言实现模拟登陆百度

期间,需要去搞清楚,如何使用全局变量。

【折腾过程】

1.参考:

Global variables

好像是,直接放到函数外边,就是全局变量了?

去试试,相关代码为:

/* Global Variables */
var curCookies []*http.Cookie;

//do some init for crifanLib
func init()
{
    fmt.Println("init something");
    curCookies = nil
}

func main() {
    init()
}

结果是出现“syntax error: unexpected semicolon or newline before {”的错误:

【已解决】go语言中的函数编译出错:syntax error: unexpected semicolon or newline before {

2.然后,又出现“undefined: init”的错误:

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

3.然后,此处,就完全的实现了,对应的全局变量的效果了:

自己全局定义了一个变量:

/* Global Variables */
var curCookies []*http.Cookie;

然后放在另外一个函数中初始化:

//do some init for crifanLib
func initCrifanLib(){
    fmt.Println("init something");
    curCookies = nil
    return
}

再在main函数中,调用此函数:

func main() {
    initCrifanLib()
}

是可以实现对应的初始化此全局变量的。

 

【总结】

go语言中的全局变量,就是普通的放在函数之外,即可。

而且,此处的变量,好像是属于package级别的全局变量。

相关代码演示:

package main

import (
    "fmt"
    "net/http"
)

/* Global Variables */
var curCookies []*http.Cookie;

//do some init for crifanLib
func initCrifanLib(){
    fmt.Println("init something");
    curCookies = nil
    return
}

func main() {
    initCrifanLib()
}
 

即可。

转载请注明:在路上 » 【已解决】go语言中的全局变量

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
89 queries in 0.197 seconds, using 22.10MB memory