在下面的片段中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个赞
不,这没有简写。:=
始终分配给当前(最内部)范围内的变量,必要时创建新变量。要分配给当前范围之外的任何变量,您必须使用=
代替:=
,并且在多重分配的情况下,这意味着必须预先声明所有变量。
- 2 回答
- 0 关注
- 229 浏览
添加回答
举报
0/150
提交
取消