在<go程序设计语言>这本书中有下面这么一个例子,其中一行是 `var op func(p, q Point) Point ` ,不理解这行语句怎么理解,有哪位大佬可以帮解答一下么?
```go
type Point struct{ X, Y float64 }
func (p Point) Add(q Point) Point { return Point{p.X + q.X, p.Y + q.Y} }
func (p Point) Sub(q Point) Point { return Point{p.X ‐ q.X, p.Y ‐ q.Y} }
type Path []Point
func (path Path) TranslateBy(offset Point, add bool) {
var op func(p, q Point) Point
if add {
op = Point.Add
} else {
op = Point.Sub
}
for i := range path {
// Call either path[i].Add(offset) or path[i].Sub(offset).
path[i] = op(path[i], offset)
}
}
```
不好意思,刚明白过来,`func(p, q Point) Point `表示的是op的类型 , 是一个整体,是一个返回值类型为Point的匿名函数
有疑问加站长微信联系(非本文作者)