Go语法糖和陷阱
:=
1. 多变量赋值可能会重新声明
- 左侧存在新变量,则旧变量会被重新声明
- 左侧无新变量,则会报错
no new variable on left side of :=
所以我们看下面的例子:
1 | i, j := 0, 1 |
2. 不能用于函数外部
可以将:=
分解为声明和赋值,而赋值不能出现在函数外部
会报错syntax error: non-declaration statement outside function body
还要充分注意作用域的为题
可变参数 ...
如最常用的fmt.Println(arg ...interface{})
attention:
- 可变参数及 …必须写在参数列表最右边
- 内部当作 slice 解析,可以用range 遍历
按上面所说可以当作slice解析,所以可变参数能直接传slice类型,但注意要以 name… 的格式。
eg:
1 | func Greeting(greets string, who ...string){ |
坑!!!
《Go专家编程》就告一段落了,计划看下《图解http》和《redis实战》
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Legendary!