最近在阅读Kubernetes早期版本的源码,发现```var *** func()```的写法,请问这种写法该如何理解?有什么好处吗?
```go
var testHookServerServe func(*Server, net.Listener) // used if non-nil
func (srv *Server) Serve(l net.Listener) error {
defer l.Close()
if fn := testHookServerServe; fn != nil {
fn(srv, l)
}
...
}
```
> 肯定有一处会给 testHookServerServe 这个变量赋值
<a href="/user/polaris" title="@polaris">@polaris</a> 我看了看代码,代码中并没有类似 `testHookServerServe := xxx` 这样的赋值发生啊,那请问 `fn := testHookServerServe` 具体的值又是从哪来的呢?我也是初学者非常疑惑,所以请见谅~~
#6
更多评论