修正半角标点符号

This commit is contained in:
kimw
2018-06-09 16:27:25 +00:00
parent a81bfabcdc
commit 7ebd75aeae
60 changed files with 132 additions and 132 deletions

View File

@@ -1,6 +1,6 @@
## 6.4. 方法值和方法表达式
我们经常选择一个方法并且在同一个表达式里执行比如常见的p.Distance()形式实际上将其分成两步来执行也是可能的。p.Distance叫作“选择器”选择器会返回一个方法"值"->一个将方法(Point.Distance)绑定到特定接收器变量的函数。这个函数可以不通过指定其接收器即可被调用;即调用时不需要指定接收器(译注:因为已经在前文中指定过了),只要传入函数的参数即可:
我们经常选择一个方法并且在同一个表达式里执行比如常见的p.Distance()形式实际上将其分成两步来执行也是可能的。p.Distance叫作“选择器”选择器会返回一个方法“值”->一个将方法Point.Distance绑定到特定接收器变量的函数。这个函数可以不通过指定其接收器即可被调用;即调用时不需要指定接收器译注:因为已经在前文中指定过了,只要传入函数的参数即可:
```go
p := Point{1, 2}
@@ -17,7 +17,7 @@ scaleP(3) // then (6, 12)
scaleP(10) // then (60, 120)
```
在一个包的API需要一个函数值、且调用方希望操作的是某一个绑定了对象的方法的话方法"值"会非常实用(``=_=`真是绕)。举例来说下面例子中的time.AfterFunc这个函数的功能是在指定的延迟时间之后来执行一个(译注:另外的)函数。且这个函数操作的是一个Rocket对象r
在一个包的API需要一个函数值、且调用方希望操作的是某一个绑定了对象的方法的话方法“值”会非常实用``=_=`真是绕。举例来说下面例子中的time.AfterFunc这个函数的功能是在指定的延迟时间之后来执行一个译注:另外的函数。且这个函数操作的是一个Rocket对象r
```go
type Rocket struct { /* ... */ }
@@ -26,7 +26,7 @@ r := new(Rocket)
time.AfterFunc(10 * time.Second, func() { r.Launch() })
```
直接用方法"值"传入AfterFunc的话可以更为简短
直接用方法“值”传入AfterFunc的话可以更为简短
```go
time.AfterFunc(10 * time.Second, r.Launch)
@@ -34,9 +34,9 @@ time.AfterFunc(10 * time.Second, r.Launch)
译注:省掉了上面那个例子里的匿名函数。
和方法"值"相关的还有方法表达式。当调用一个方法时,与调用一个普通的函数相比,我们必须要用选择器(p.Distance)语法来指定方法的接收器。
和方法“值”相关的还有方法表达式。当调用一个方法时,与调用一个普通的函数相比,我们必须要用选择器p.Distance语法来指定方法的接收器。
当T是一个类型时方法表达式可能会写作`T.f`或者`(*T).f`,会返回一个函数"值",这种函数会将其第一个参数用作接收器,所以可以用通常(译注:不写选择器)的方式来对其进行调用:
当T是一个类型时方法表达式可能会写作`T.f`或者`(*T).f`,会返回一个函数“值”,这种函数会将其第一个参数用作接收器,所以可以用通常译注:不写选择器的方式来对其进行调用:
```go
p := Point{1, 2}