>  기사  >  백엔드 개발  >  '&deployment' 포인터는 Kubernetes의 'runtime.Object' 인터페이스를 어떻게 이행합니까?

'&deployment' 포인터는 Kubernetes의 'runtime.Object' 인터페이스를 어떻게 이행합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 21:21:02660검색

 How Does the `&deployment` Pointer Fulfill the `runtime.Object` Interface in Kubernetes?

&deployment 포인터가 런타임 객체 인터페이스를 충족하는 방법

Kubernetes 코드에서 kubectl/run.go의 생성 함수는 다음을 반환합니다. Runtime.Object 및 오류가 포함된 결과 목록입니다. 함수의 마지막 줄인 return &deployment, nil은 로컬 변수 배포 주소를 Runtime.Object 유형에 할당합니다.

deployment는 Extensionsv1beta1.Deployment 유형의 로컬 변수입니다. 이 유형에는 포인터 수신기가 있는 GetObjectKind() 메서드가 있는 Metav1.TypeMeta가 포함되어 있습니다. 따라서 포함된 메서드에 대한 Go의 승격 규칙으로 인해 배포에 대한 포인터에도 이 메서드가 있습니다.

또한 배포에는 포인터 수신기가 있는 "직접" DeepCopyObject() 메서드가 있으므로 *Deployment의 메서드 세트에는 다음이 포함됩니다. GetObjectKind() 및 DeepCopyObject() 모두.

runtime.Object 인터페이스에는 이러한 두 메서드를 구현하기 위한 유형이 필요합니다. *Deployment는 두 메소드를 모두 구현하므로, Runtime.Object에 할당하는 것이 유효한 유형입니다.

인터페이스 유형이 메소드 세트를 지정하기 때문에 유형 시스템에서는 이 할당을 허용합니다. 인터페이스 유형의 변수는 인터페이스 메소드 세트의 상위 세트인 메소드 세트를 사용하여 모든 유형의 값을 저장할 수 있습니다. 이 경우 *Deployment의 메소드 세트는 Runtime.Object의 메소드 세트의 상위 세트이므로 *Deployment는 Runtime.Object를 구현합니다.

따라서 &deployment는 생성 함수에 대한 유효한 반환 값입니다. 내장된 *metav1.TypeMeta에서 메서드 상속을 통해 런타임.Object 인터페이스를 충족하기 때문입니다.

위 내용은 '&deployment' 포인터는 Kubernetes의 'runtime.Object' 인터페이스를 어떻게 이행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.