英文:
add struct variable/name to the left of :=
问题
如何简化这段代码:
access_log, err := os.OpenFile("log/access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0660)
w.access_log = access_log
简化为:
w.access_log, err := os.OpenFile("log/access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0660)
英文:
How to shorten this code
access_log, err := os.OpenFile("log/access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0660);
w.access_log = access_log
To something like this
w.access_log, err := os.OpenFile("log/access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0660);
答案1
得分: 2
你需要使用=
进行赋值,而不是使用:=
进行声明:
var error
w.access_log, err = os.OpenFile("log/access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0660);
:=
是用于短变量声明的,而w.access_log
已经在w
结构体中声明过了。
这个问题在issue 6842中有讨论。
英文:
You need to assign (=
), not declare (:=
):
var error
w.access_log, err = os.OpenFile("log/access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0660);
:=
is for Short Variable declaration, and w.access_log
is already declared (in w
struct)
It is discussed in issue 6842.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论