deployment是局部变量,其声明:
deployment := extensionsv1beta1.Deployment{ // ...}extensionsv1beta1从哪里进口:
import ( // ... extensionsv1beta1 "k8s.io/api/extensions/v1beta1" // ...)
的文档
extensionsv1beta1.Deployment。其定义是:
type Deployment struct { metav1.Typemeta `json:",inline"` // ...other fields...}它嵌入了
metav1.Typemeta,它有一个
GetObjectKind()带有指针接收器的方法。这意味着指向的指针
Deployment也具有此方法,因为Spec:Struct类型:
给定一个结构类型
S和一个定义的类型T,提升的方法包括在该结构的方法集中,如下所示:
- 如果
S包含嵌入式字段T,则S和的方法集*S都包括带有接收方的提升方法T。
方法集*S还包括带有接收方的提升方法*T。
并
Deployment具有“直接”
DeepCopyObject()方法,再次使用指针接收器。因此,设置方法的
*Deployment包含此方法。
最后引用Spec:接口类型:
接口类型指定一个称为其 接口 的方法集。
接口类型的变量可以使用方法集合存储任何类型的值,该方法集是接口的任何超集。* 据说这种类型 实现了接口 。 __ * __
因此,这意味着的方法集
*Deployment具有定义的所有方法
Object,或换句话说:的方法集
*Deployment是的方法集的超集
Object,因此
*Deployment实现
Object。
deployment是类型的
extensionsv1beta1.Deployment,这意味着
&deployment类型
*extensionsv1beta1.Deployment,我们在上面展示了它的实现
Object;
因此,该值
&deployment可以分配给或存储在type变量中
Object。



