去全局变量和短变量定义
在以下片段中
package ...
var Conn *sql.DB // outer Conn
func 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
,但这在包本身内部无效。
-
不,就是这样。
:=
只是New()(变量声明(var
https://golang.org/doc/effective_go.html#allocation_new)
foo int)的快捷方式。一种更惯用的方法(通常是更好的设计)是返回连接而不使用全局变量。func Init(user string, pwd string, dbname string, port int) (*sql.DB, error) { // ... }
依赖注入是您的朋友,请尽量不要超出范围。
-
Spring Boot项目中的全局变量和应用程序变量定义
2021-02-02 关注 0 浏览79 1答案
-
将内存变量定义为全局变量的Visual FoxPro命令是___________
2022-05-11 关注 0 浏览17 1答案
-
将内存变量定义为全局变量的Visual FoxPro命令是
2022-05-11 关注 0 浏览15 1答案
-
将内存变量定义为全局变量的Visual FoxPro命令是( )。
2022-05-11 关注 0 浏览19 1答案
-
使用webpack定义全局变量
2021-02-02 关注 0 浏览69 1答案
-
如何在CoffeeScript中定义全局变量?
2021-02-02 关注 0 浏览93 1答案
-
如何在 CoffeeScript 中定义全局变量?
2022-05-26 关注 0 浏览27 1答案
-
在 JavaScript 函数中定义全局变量
2022-03-22 关注 0 浏览41 1答案
-
将默认参数定义为全局变量
2021-01-29 关注 0 浏览105 1答案
-
Python全局变量,本地变量和UnboundLocalError
2021-01-29 关注 0 浏览68 1答案