This commit is contained in:
leo
2016-03-22 23:40:41 +08:00
parent 125d7f279a
commit a6d09df002
2 changed files with 9 additions and 9 deletions

View File

@@ -16,7 +16,7 @@
最佳实践:对比以下使用方式:
- 使用正确的方式初始化一个`map[type]slice`(参考[8.1.3小节](08.1.md)
- 使用正确的方式初始化一个元素是切片的映射,例如`map[type]slice`(参考[8.1.3小节](08.1.md)
- 一直使用逗号ok或者checked形式作为类型断言参考[11.3小节](11.3.md)
- 使用一个工厂函数创建并初始化自己定义类型(参考[10.2小节](10.2.md)-[18.4小节](18.4.md)
- 仅当一个结构体的方法想改变结构体时,使用结构体指针作为方法的接受者,否则使用一个结构体值类型[10.6.3小节](10.6.md)
@@ -26,5 +26,5 @@
## 链接
- [目录](directory.md)
- 上一章:[使用SMTP简单邮件传输协议 Simple Message Transfer Protocol)发送邮件](15.12.md)
- 上一章:[使用SMTP简单邮件传输协议发送邮件](15.12.md)
- 下一节:[误用短声明导致变量覆盖](16.1.md)

View File

@@ -3,7 +3,7 @@
```go
var remember bool = false
if something {
remember := true //错误
remember := true //错误
}
// 使用remember
```
@@ -12,7 +12,7 @@ remember := true //错误
```go
if something {
remember = true
remember = true
}
```
@@ -21,16 +21,16 @@ remember = true
```go
func shadow() (err error) {
x, err := check1() // x是新创建变量err是被赋值
x, err := check1() // x是新创建变量err是被赋值
if err != nil {
return // 正确返回err
return // 正确返回err
}
if y, err := check2(x); err != nil { // y和if语句中err被创建
return // if语句中的err覆盖外面的err所以错误的返回nil
return // if语句中的err覆盖外面的err所以错误的返回nil
} else {
fmt.Println(y)
fmt.Println(y)
}
return
return
}
```