k8s 源码分析,语法提问

jiaqianjing · 2018-03-22 15:31:36 · 1009 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-03-22 15:31:36 的主题,其中的信息可能已经有所发展或是发生改变。

var _ generic.StorageDecorator = StorageWithCacher

// Creates a cacher based given storageConfig.
func StorageWithCacher(
    copier runtime.ObjectCopier,
    // 配置 etcd api version, server addr 等参数.
    storageConfig *storagebackend.Config,
    capacity int,
    objectType runtime.Object,
    resourcePrefix string,
    keyFunc func(obj runtime.Object) (string, error),
    newListFunc func() runtime.Object,
    getAttrsFunc storage.AttrFunc,
    triggerFunc storage.TriggerPublisherFunc) (storage.Interface, factory.DestroyFunc) {

    // 读取配置 etcd 的配置,如 API 版本,tls 认证等信息,创建 etcd 连接以及 Storage Interface
    s, d := generic.NewRawStorage(storageConfig)
    // TODO: we would change this later to make storage always have cacher and hide low level KV layer inside.
    // Currently it has two layers of same storage interface -- cacher and low level kv.
    cacherConfig := storage.CacherConfig{
        CacheCapacity:        capacity,
        Storage:              s,
        Versioner:            etcdstorage.APIObjectVersioner{},
        Copier:               copier,
        Type:                 objectType,
        ResourcePrefix:       resourcePrefix,
        KeyFunc:              keyFunc,
        NewListFunc:          newListFunc,
        GetAttrsFunc:         getAttrsFunc,
        TriggerPublisherFunc: triggerFunc,
        Codec:                storageConfig.Codec,
    }
    cacher := storage.NewCacherFromConfig(cacherConfig)
    destroyFunc := func() {
        cacher.Stop()
        d()
    }

    return cacher, destroyFunc
}


...
package  generic
type StorageDecorator func(
    copier runtime.ObjectCopier,
    config *storagebackend.Config,
    capacity int,
    objectType runtime.Object,
    resourcePrefix string,
    keyFunc func(obj runtime.Object) (string, error),
    newListFunc func() runtime.Object,
    getAttrsFunc storage.AttrFunc,
    trigger storage.TriggerPublisherFunc) (storage.Interface, factory.DestroyFunc)

提问: StorageWithCacher 这个函数,返回两个值,这个 var _ generic.StorageDecorator 中下划线_是什么意思, 它并不是_ , xxx :=


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1009 次点击  
加入收藏 微博
2 回复  |  直到 2018-03-22 17:19:20
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传