mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-11-13 17:36:12 +08:00
update
This commit is contained in:
@@ -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))
|
- 一直使用逗号,ok或者checked形式作为类型断言(参考[11.3小节](11.3.md))
|
||||||
- 使用一个工厂函数创建并初始化自己定义类型(参考[10.2小节](10.2.md)-[18.4小节](18.4.md))
|
- 使用一个工厂函数创建并初始化自己定义类型(参考[10.2小节](10.2.md)-[18.4小节](18.4.md))
|
||||||
- 仅当一个结构体的方法想改变结构体时,使用结构体指针作为方法的接受者,否则使用一个结构体值类型[10.6.3小节](10.6.md)
|
- 仅当一个结构体的方法想改变结构体时,使用结构体指针作为方法的接受者,否则使用一个结构体值类型[10.6.3小节](10.6.md)
|
||||||
@@ -26,5 +26,5 @@
|
|||||||
## 链接
|
## 链接
|
||||||
|
|
||||||
- [目录](directory.md)
|
- [目录](directory.md)
|
||||||
- 上一章:[使用SMTP(简单邮件传输协议 Simple Message Transfer Protocol)发送邮件](15.12.md)
|
- 上一章:[使用SMTP(简单邮件传输协议)发送邮件](15.12.md)
|
||||||
- 下一节:[误用短声明导致变量覆盖](16.1.md)
|
- 下一节:[误用短声明导致变量覆盖](16.1.md)
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
```go
|
```go
|
||||||
var remember bool = false
|
var remember bool = false
|
||||||
if something {
|
if something {
|
||||||
remember := true //错误
|
remember := true //错误
|
||||||
}
|
}
|
||||||
// 使用remember
|
// 使用remember
|
||||||
```
|
```
|
||||||
@@ -12,7 +12,7 @@ remember := true //错误
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
if something {
|
if something {
|
||||||
remember = true
|
remember = true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -21,16 +21,16 @@ remember = true
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
func shadow() (err error) {
|
func shadow() (err error) {
|
||||||
x, err := check1() // x是新创建变量,err是被赋值
|
x, err := check1() // x是新创建变量,err是被赋值
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return // 正确返回err
|
return // 正确返回err
|
||||||
}
|
}
|
||||||
if y, err := check2(x); err != nil { // y和if语句中err被创建
|
if y, err := check2(x); err != nil { // y和if语句中err被创建
|
||||||
return // if语句中的err覆盖外面的err,所以错误的返回nil!
|
return // if语句中的err覆盖外面的err,所以错误的返回nil!
|
||||||
} else {
|
} else {
|
||||||
fmt.Println(y)
|
fmt.Println(y)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user