주소 연산자가 Runtime.Object에 대한 배포 할당을 실행하는 방법
Kubernetes 코드에서 kubectl/run.go의 생성 함수는 목록을 반환합니다. Runtime.Object 및 오류가 포함되어 있습니다. 함수의 마지막 줄은 배포 변수의 주소를 반환 목록의 첫 번째 요소에 할당합니다. Runtime.Object는 GetObjectKind 및 DeepCopyObject 메서드와 함께 k8s.io/apimachinery/pkg/runtime에 정의된 인터페이스입니다.
주소 연산자(&)는 변수에 대한 포인터를 생성합니다. Go에서 포인터의 유형은 기본 유형과 다릅니다. 그러나 배포 변수는 Metav1.TypeMeta를 포함하는 구조체인 Extensionsv1beta1.Deployment의 인스턴스로 로컬로 선언됩니다. 이 포함은 배포 및 *배포(배포에 대한 포인터) 모두에 대해 GetObjectKind 메서드를 제공합니다.
또한 Extensionsv1beta1.Deployment는 포인터 수신기를 사용하여 DeepCopyObject 메서드를 직접 구현합니다. 이는 *Deployment에도 DeepCopyObject 메서드가 있음을 의미합니다.
Go 사양에 따라 인터페이스는 인터페이스의 상위 집합인 메서드 집합이 있는 모든 유형의 값을 저장할 수 있습니다. 이 경우 Deployment의 메서드 집합에는 Object에서 정의한 모든 메서드가 포함되어 Deployment가 Object의 구현이 됩니다.
따라서 배포는 확장 유형 v1beta1.Deployment이므로 &deployment는 다음과 같습니다. Object를 구현하는 *extensionsv1beta1.Deployment를 입력하세요. 이를 통해 Object 유형의 값 또는 Object 구현을 예상하는 Runtime.Object 유형의 변수에 &deployment를 할당할 수 있습니다.
위 내용은 다음은 다양한 수준의 기술적 세부 사항과 질문 표현을 다루는 몇 가지 제목 옵션입니다. 보다 일반적인 소개: * 주소 연산자는 Kuberne에서 Runtime.Object와 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!