我正在查看Go-SQL-Driver 此处的示例代码://Insert stmt, err := db.Prepare("INSERT userinfo SET username=?")// Update stmt, err = db.Prepare("update userinfo set username=?")为什么在Insert我们使用:=但在Update我们使用=?在我看来,两者都应该是:=
3 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
:=
用于短变量声明;它既在左侧声明变量,又为它们赋值。(在Go 编程语言规范的“短变量声明”部分对此进行了解释。)
=
相比之下,仅执行赋值操作。
在您的示例中,使用第二行=
是因为变量已经声明(由第一行),因此:=
不需要。(事实上,它会给出一个错误信息::=
仅当至少一个变量是“新的”时才允许,即尚未声明。)
慕丝7291255
TA贡献1859条经验 获得超6个赞
:=
是为了方便。重要的区别在于:=
does类型推断,因此当它在一行中声明和分配变量时,变量类型是从函数的返回值类型推断出来的。
这使您的程序在大多数情况下更易于阅读,但确实意味着有人必须在文档中查找函数的返回值类型以找出变量的类型。
你要使用=
,当你重新assiging到现有的变量或函数内分配到全局/包变量的时候,否则,你将创建一个新的局部变量。
- 3 回答
- 0 关注
- 210 浏览
添加回答
举报
0/150
提交
取消