Dalam kod kubectl/run.go Kubernetes, fungsi Generate mengembalikan senarai hasil yang merangkumi dua jenis: runtime.Objek dan ralat. Walau bagaimanapun, baris terakhir fungsi ialah return &deployment, nil, yang pada mulanya menimbulkan persoalan bagaimana &deployment boleh memenuhi masa jalan.Jenis objek.
runtime.Object ialah antara muka yang ditakrifkan dalam pakej k8s.io/apimachinery/pkg/runtime. Ia mewakili objek abstrak dalam API Kubernetes. Untuk melaksanakan antara muka, sesuatu jenis mesti mempunyai kaedah berikut:
Dalam kes ini, penempatan ialah pembolehubah tempatan jenis sambunganv1beta1.Deployment, iaitu jenis API Kubernetes. extensionsv1beta1.Deployment memanjangkan metav1.TypeMeta, yang menyediakan kaedah GetObjectKind(). Selain itu, extensionsv1beta1.Deployment juga melaksanakan kaedah DeepCopyObject() secara langsung.
Operator & dalam Go mencipta penuding kepada pembolehubah. Penunjuk mempunyai jenis yang berbeza daripada jenis asasnya. Walau bagaimanapun, dalam kes ini:
Mengikut spesifikasi Go, jenis antara muka boleh menyimpan nilai apa-apa jenis dengan set kaedah yang merupakan superset antara muka. Dalam kes ini, set kaedah bagi *extensionsv1beta1.Deployment ialah superset set kaedah runtime.Object. Oleh itu, &deployment boleh diberikan kepada pembolehubah jenis masa jalan.Objek, memenuhi jenis pemulangan fungsi Generate.
Atas ialah kandungan terperinci Bagaimanakah Penunjuk Penerapan Memenuhi Masa jalan. Antara Muka Objek dalam Kubernetes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!