为了账号安全,请及时绑定邮箱和手机立即绑定

client-go 中的 golang 语法

client-go 中的 golang 语法

Go
四季花海 2023-06-26 15:36:58
有人可以帮助我理解这些代码吗?在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不实现该接口,您的代码将无法编译。这是多么厉害的伎俩呢?



查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信