mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:06:41 +08:00
update
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
依附于[第13章](13.0.md)模式的描述和[第17.1小节](17.1.md)与[第17.2.4小节](17.2.md)的总结。
|
依附于[第13章](13.0.md)模式的描述和[第17.1小节](17.1.md)与[第17.2.4小节](17.2.md)的总结。
|
||||||
|
|
||||||
- 16.10.1 不要使用布尔值:
|
## 16.10.1 不要使用布尔值:
|
||||||
|
|
||||||
像下面代码一样,创建一个布尔型变量用于测试错误条件是多余的:
|
像下面代码一样,创建一个布尔型变量用于测试错误条件是多余的:
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ var good bool
|
|||||||
if err1 != nil { … }
|
if err1 != nil { … }
|
||||||
```
|
```
|
||||||
|
|
||||||
- 16.10.2 避免错误检测使代码变得混乱:
|
## 16.10.2 避免错误检测使代码变得混乱:
|
||||||
|
|
||||||
避免写出这样的代码:
|
避免写出这样的代码:
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ if err2 != nil {
|
|||||||
|
|
||||||
首先,包括在一个初始化的`if`语句中对函数的调用。
|
首先,包括在一个初始化的`if`语句中对函数的调用。
|
||||||
|
|
||||||
但即使代码中到处都是以`if`语句的形式通知错误(通过打印错误信息)。通过这种方式,很难分别什么是正常的程序逻辑,什么是错误检测或错误通知。还需注意的是,大部分代码都是致力于错误的检测。通常解决此问题的好办法是尽可能以闭包的形式封装你的错误检测,例如下面的代码:
|
但即使代码中到处都是以`if`语句的形式通知错误(通过打印错误信息)。通过这种方式,很难分辨什么是正常的程序逻辑,什么是错误检测或错误通知。还需注意的是,大部分代码都是致力于错误的检测。通常解决此问题的好办法是尽可能以闭包的形式封装你的错误检测,例如下面的代码:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
|
||||||
@@ -63,13 +63,13 @@ func httpRequestHandler(w http.ResponseWriter, req *http.Request) {
|
|||||||
doSomething() ...
|
doSomething() ...
|
||||||
```
|
```
|
||||||
|
|
||||||
这种方法清晰的区别了错误检测、错误通知和正常的程序逻辑(更详细的方式参考[第13.5小节](13.5.md))。
|
这种方法可以很清楚的的分辨出错误检测、错误通知和正常的程序逻辑(更详细的方式参考[第13.5小节](13.5.md))。
|
||||||
|
|
||||||
**在开始阅读[第17章](17.0.md)前,先回答下列2个问题:**
|
**在开始阅读[第17章](17.0.md)前,先回答下列2个问题:**
|
||||||
|
|
||||||
- 问题 16.1:总结你能记住的所有关于`,ok`模式的情况。
|
- 问题 16.1:总结你能记住的所有关于`,ok`模式的情况。
|
||||||
|
|
||||||
- 问题 16.2:总结你能记住的所有关于`defer`模式的情况。
|
- 问题 16.2:总结你能记住的所有关于`defer`模式的情况。
|
||||||
|
|
||||||
|
|
||||||
## 链接
|
## 链接
|
||||||
|
@@ -48,9 +48,13 @@ func main() {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
/* 输出 0 1 2 3 4
|
/* 输出:
|
||||||
|
0 1 2 3 4
|
||||||
|
|
||||||
4 4 4 4 4
|
4 4 4 4 4
|
||||||
|
|
||||||
1 0 3 4 2
|
1 0 3 4 2
|
||||||
|
|
||||||
10 11 12 13 14
|
10 11 12 13 14
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user