Go Academy · Pelajaran

Flag dan Flag Persisten

Flag string, int, bool, dan integrasi Viper

Pelajaran 2 dari 413 langkah

Flag dan Flag Persisten adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Opsi lokal

Opsi lokal hanya berlaku untuk perintah tempat opsi tersebut ditentukan. Gunakan cmd.Flags():

var port int
serveCmd.Flags().IntVar(&port, "port", 8080, "HTTP server port")

Opsi persisten

Opsi persisten diwarisi oleh perintah dan semua subperintahnya. Gunakan cmd.PersistentFlags():

var verbose bool
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "Enable verbose output")

Opsi singkat

Gunakan varian *VarP untuk menambahkan singkatan satu huruf:

cmd.Flags().StringVarP(&output, "output", "o", "stdout", "Output destination")

Jenis opsi

Cobra (melalui pflag) mendukung: String, Bool, Int, Int64, Float64, StringSlice, Duration, Count, dan lainnya. Masing-masing memiliki varian Var (menerima pointer) dan varian praktis (mengembalikan pointer).

Opsi wajib

Tandai sebuah opsi sebagai wajib — Cobra akan menghasilkan kesalahan jika opsi tersebut tidak diberikan:

cmd.MarkFlagRequired("config")

Grup opsi

Tandai opsi sebagai saling eksklusif atau wajib digunakan bersama dengan MarkFlagsRequiredTogether dan MarkFlagsMutuallyExclusive:

cmd.MarkFlagsRequiredTogether("user", "password")
cmd.MarkFlagsMutuallyExclusive("json", "yaml")

Opsi StringSlice

Terima beberapa nilai sebagai daftar yang dipisahkan koma atau melalui opsi yang diulang:

var tags []string
cmd.Flags().StringSliceVar(&tags, "tags", nil, "Tags (comma-separated)")
// Usage: --tags a,b,c or --tags a --tags b

Menghubungkan opsi ke Viper

Hubungkan sebuah opsi cobra ke kunci Viper agar nilainya juga dapat berasal dari variabel lingkungan atau berkas konfigurasi:

viper.BindPFlag("port", serveCmd.Flags().Lookup("port"))
viper.BindEnv("port", "APP_PORT")

Tampilan nilai bawaan

Cobra secara otomatis menampilkan nilai bawaan dalam teks bantuan. Berikan nilai bawaan yang jelas dan langsung berfungsi untuk kasus umum.

Mengakses nilai opsi

Akses nilai opsi melalui pointer yang Anda hubungkan, atau cari berdasarkan nama dari kumpulan opsi perintah jika pointer tersebut tidak dapat diakses:

port, _ := cmd.Flags().GetInt("port")

Metode Changed

cmd.Flags().Changed("flag-name") mengembalikan true hanya jika pengguna secara eksplisit menetapkan opsi tersebut. Gunakan ini untuk membedakan antara "tidak diberikan" dan "diberikan dengan nilai bawaan".

Pemeriksaan Singkat

Apa perbedaan antara opsi lokal dan opsi persisten di Cobra?

Ringkasan: Opsi dan Opsi Persisten

Poin-poin utama:

  • cmd.Flags(): lokal; cmd.PersistentFlags(): diwarisi oleh subperintah
  • *VarP untuk singkatan; MarkFlagRequired untuk opsi wajib
  • MarkFlagsRequiredTogether / MarkFlagsMutuallyExclusive untuk hubungan antaro ps i
  • Changed() untuk mendeteksi apakah pengguna secara eksplisit menetapkan suatu opsi
Gratis untuk memulai

Belajar Go 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
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Flag dan Flag Persisten” gratis?

Ya — teks lengkap “Flag dan Flag Persisten” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Flag dan Flag Persisten”?

Flag string, int, bool, dan integrasi Viper Kamu berlatih Go Academy 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 Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy 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 2 dari 4.

Berapa lama pelajaran “Flag dan Flag Persisten” 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 Go Academy ini?

Ya. Setiap pelajaran Go Academy 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

  1. Dasar-Dasar Cobra
  2. Flag dan Flag Persisten
  3. Subperintah dan Grup Perintah
  4. Mendistribusikan Alat CLI
← Kembali ke Go Academy