为什么struct Client(在coreos / etcd / clientv3 / client.go中)具有方法PUT

时间:2018-08-06 09:32:37

标签: go etcd

方法PUT在接口KV中,但是结构客户端未在接口KV中实现该方法。那么为什么可以使用这样的方法:

cli, err := clientv3.New(.....)
cli.Put(...)

1 个答案:

答案 0 :(得分:2)

按照godoc

type Client struct {
    Cluster
    KV
    Lease
    Watcher
    Auth
    Maintenance

    // Username is a user name for authentication.
    Username string
    // Password is a password for authentication.
    Password string
    // contains filtered or unexported fields
}

这意味着Client嵌入了KV。因此,在调用Client.Put()时,会提升并使用Put()的{​​{1}}方法。

了解更多:https://golang.org/ref/spec#Struct_types