有人可以帮助我理解这些代码吗?在client-go项目中,有一些代码我无法理解。代码路径为\tols\cache\store.go Add(obj interface{}) error Update(obj interface{}) error Delete(obj interface{}) error List() []interface{} ListKeys() []string Get(obj interface{}) (item interface{}, exists bool, err error) GetByKey(key string) (item interface{}, exists bool, err error) // Replace will delete the contents of the store, using instead the // given list. Store takes ownership of the list, you should not reference // it after calling this function. Replace([]interface{}, string) error Resync() error}type cache struct { // cacheStorage bears the burden of thread safety for the cache cacheStorage ThreadSafeStore // keyFunc is used to make the key for objects stored in and retrieved from items, and // should be deterministic. keyFunc KeyFunc}var _ Store = &cache{}最后一行“var _ Store = &cache{}”,这是什么意思,有官方文档支持吗?
1 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
在golang中,如果定义了一个变量但不使用它,那么就会报错。通过使用_
名称,您可以克服这个问题。我想每个人都已经_, err := doSomething()
在 golang 中看到过。var _ Store = &cache{}
与此没有什么不同。这里最棒的是Store
一个接口,所以通过var _ Store = &cache{}
这样做,它强制caches
实现接口Store
。如果caches
不实现该接口,您的代码将无法编译。这是多么厉害的伎俩呢?
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消