Deep Merge dengan mergeOverwrite dan dict
Komposisikan values terstruktur secara terprogram.
Deep Merge dengan mergeOverwrite dan dict adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Membangun Peta dalam Templat
Terkadang Anda perlu menyusun peta di dalam templat. Fungsi dict membuatnya dari pasangan kunci dan nilai yang berselang-seling.
{{ $cfg := dict "level" "info" "json" true }}Mengapa Menggabungkan Peta
Anda sering memiliki bawaan bagan dan penggantian dari pengguna, lalu menginginkan satu peta gabungan. Itulah tepatnya yang dihasilkan oleh merge.
Penggabungan Dangkal
Fungsi merge menyalin kunci dari peta sumber ke tujuan, tetapi mempertahankan nilai tujuan jika kunci tersebut sudah ada.
{{ $out := merge $user $defaults }}merge Mengutamakan Tujuan
Dengan merge, argumen pertama menang jika ada kunci yang bertabrakan, sehingga fungsi ini ideal ketika masukan pengguna harus menggantikan nilai bawaan Anda.
Memperkenalkan mergeOverwrite
Fungsi mergeOverwrite melakukan sebaliknya: peta sumber yang muncul belakangan menimpa tujuan dan melapisi nilai di atasnya.
{{ $out := mergeOverwrite $defaults $user }}Dalam, Bukan Dangkal
Kedua pembantu tersebut melakukan penggabungan secara rekursif: peta bertingkat digabungkan berdasarkan setiap kunci, bukan seluruh subpohon yang diganti sekaligus.
Peringatan tentang Mutasi
Berhati-hatilah: merge dan mergeOverwrite mengubah argumen pertamanya secara langsung. Berikan dict baru jika Anda harus mempertahankan yang asli tetap utuh.
{{ $base := dict }}{{ $r := mergeOverwrite $base .Values.extra }}Pola Bawaan Berlapis
Pola yang umum adalah memulai dari dict bawaan, lalu melapiskan nilai pengguna di atasnya agar kunci yang tidak ditetapkan kembali ke nilai yang aman.
{{ $merged := mergeOverwrite (dict "port" 80) .Values.service }}Membaca Nilai yang Digabungkan
Setelah digabungkan, Anda memperlakukan hasilnya seperti peta apa pun dan mengambil kunci dengan dot atau fungsi index seperti biasa.
{{ $merged.port }}Menyerialisasikan Hasil
Untuk menghasilkan struktur gabungan sebagai YAML, teruskan melalui toYaml dan nindent agar blok tersebut berada pada indentasi yang tepat.
{{ toYaml $merged | nindent 4 }}Memilih Satu Kunci
Jika nama kunci bersifat dinamis atau berisi karakter yang tidak biasa, akses peta dengan fungsi index, bukan akses menggunakan dot.
{{ index $merged "log-level" }}Pemeriksaan Singkat
Pemeriksaan singkat tentang arah penimpaan.
Rangkuman
Anda telah mengenal dict untuk membuat peta, merge untuk mempertahankan kunci tujuan, dan mergeOverwrite agar nilai yang muncul belakangan menang; semuanya melakukan penggabungan secara mendalam. 🎉
Belajar DevOps Bootcamp dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 142
- Pelajaran
- 568
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Deep Merge dengan mergeOverwrite dan dict” gratis?
Ya — teks lengkap “Deep Merge dengan mergeOverwrite dan dict” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Deep Merge dengan mergeOverwrite dan dict”?
Komposisikan values terstruktur secara terprogram. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Deep Merge dengan mergeOverwrite dan dict” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Deep Merge dengan mergeOverwrite dan dict
- tpl: Merender String dari Values
- Mengiterasi File dengan range melalui .Files.Glob
- fail dan Penjaga Validasi Kustom