为了账号安全,请及时绑定邮箱和手机立即绑定

Go 全局变量和短变量定义

Go 全局变量和短变量定义

Go
猛跑小猪 2021-09-13 15:16:48
在下面的片段中package ...var Conn *sql.DB // outer Connfunc Init(user, pwd, dbname string, port int) {    Conn, err := sql.Open("postgres", "... args") // inner Conn    // ..}内部Conn是一个新变量,外部 Conn将保持为空。通过显式定义err和替换短变量定义,它似乎正确地初始化了外部Conn变量    var err error    Conn, err = sql.Open("postgres", "... args") // inner Conn有没有更简单的方法来指定内部Conn不应该真正是范围变量,而是全局Conn变量?我在想类似的东西package.Conn,但这在包本身内部是无效的。
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

不,这没有简写。:=始终分配给当前(最内部)范围内的变量,必要时创建新变量。要分配给当前范围之外的任何变量,您必须使用=代替:=,并且在多重分配的情况下,这意味着必须预先声明所有变量。


查看完整回答
反对 回复 2021-09-13
  • 2 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信