|
|
@@ -14,7 +14,7 @@ type Car struct {
|
|
|
type Cars []*Car
|
|
|
```
|
|
|
|
|
|
-在定义所需功能时我们可以利用函数可以作为(其它函数的)参数的事实来使用高阶函数,例如:
|
|
|
+然后我们就可以使用高阶函数,实际上也就是把函数作为定义所需方法(其他函数)的参数,例如:
|
|
|
|
|
|
1)定义一个通用的 `Process()` 函数,它接收一个作用于每一辆 car 的 f 函数作参数:
|
|
|
|
|
|
@@ -66,7 +66,7 @@ allNewBMWs := allCars.FindAll(func(car *Car) bool {
|
|
|
})
|
|
|
```
|
|
|
|
|
|
-4)我们也可以根据入参返回不同的函数。也许我们想根据不同的厂商添加汽车到不同的集合,但是这可能会是多变的。所以我们可以定义一个函数来产生特定的添加函数和 map 集:
|
|
|
+4)我们也可以根据参数返回不同的函数。也许我们想根据不同的厂商添加汽车到不同的集合,但是这(这种映射关系)可能会是会改变的。所以我们可以定义一个函数来产生特定的添加函数和 map 集:
|
|
|
|
|
|
```go
|
|
|
func MakeSortedAppender(manufacturers[]string)(func(car*Car),map[string]Cars) {
|