Go Academy · Pelajaran

Dasar-Dasar Cobra

Perintah root, Run, Args, dan pembuatan bantuan

Pelajaran 1 dari 413 langkah

Dasar-Dasar Cobra adalah pelajaran Go Academy 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 Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Apa itu Cobra?

Cobra adalah pustaka Go paling populer untuk membangun aplikasi CLI. Pustaka ini menyediakan perintah, opsi, subperintah, pembuatan bantuan, pelengkapan shell, dan validasi argumen.

Memasang Cobra

Tambahkan cobra sebagai dependensi dan, jika diperlukan, gunakan pembuat CLI:

go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myapp

Perintah utama

Setiap aplikasi Cobra memiliki perintah utama. Tentukan perintah tersebut dengan Use, deskripsi Short, dan fungsi Run:

var rootCmd = &cobra.Command{
    Use:   "myapp",
    Short: "My awesome CLI",
    Run: func(cmd *cobra.Command, args []string) {
        fmt.Println("Hello from root!")
    },
}
func main() { rootCmd.Execute() }

Struktur cobra.Command

Kolom utama: Use (nama perintah + ringkasan), Short (deskripsi satu baris), Long (bantuan terperinci), Run (menjalankan perintah), RunE (mengembalikan kesalahan).

RunE untuk meneruskan kesalahan

Gunakan RunE, bukan Run, untuk mengembalikan kesalahan. Cobra secara otomatis mencetak kesalahan dan keluar dengan kode yang bukan nol.

var rootCmd = &cobra.Command{
    RunE: func(cmd *cobra.Command, args []string) error {
        return doWork()
    },
}

Menambahkan subperintah

Buat subperintah sebagai nilai cobra.Command terpisah, lalu tambahkan ke perintah utama dengan AddCommand:

var serveCmd = &cobra.Command{
    Use:   "serve",
    Short: "Start the server",
    RunE:  runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }

Struktur proyek Cobra

Tata letak konvensional: direktori cmd/ dengan satu berkas untuk setiap subperintah, ditambah root.go. main.go hanya memanggil cmd.Execute().

cmd/
  root.go    // rootCmd definition
  serve.go   // serveCmd
  migrate.go // migrateCmd
main.go

Validasi argumen

Gunakan validator bawaan seperti cobra.ExactArgs, MinimumNArgs, atau ValidArgsFunction khusus:

var cmd = &cobra.Command{
    Args: cobra.ExactArgs(2),
    RunE: func(cmd *cobra.Command, args []string) error {
        fmt.Println(args[0], args[1])
        return nil
    },
}

Bantuan yang dibuat otomatis

Cobra secara otomatis membuat --help / -h untuk setiap perintah serta subperintah help. Teksnya berasal dari Use, Short, Long, dan opsi.

Pelengkapan shell

Cobra langsung membuat skrip pelengkapan untuk bash, zsh, fish, dan PowerShell melalui rootCmd.GenBashCompletion atau subperintah bawaan completion.

Integrasi Viper

Gabungkan Cobra dengan Viper untuk mengelola konfigurasi: opsi yang ditentukan dengan Cobra dihubungkan ke kunci Viper sehingga nilainya dapat berasal dari opsi, variabel lingkungan, atau berkas konfigurasi.

Pemeriksaan Singkat

Apa perbedaan antara cobra.Command.Run dan RunE?

Ringkasan: Dasar-dasar Cobra

Poin-poin utama:

  • cobra.Command dengan Use/Short/RunE adalah blok pembangun inti
  • rootCmd.AddCommand(subCmd) untuk perintah hierarkis
  • cobra.ExactArgs/MinimumNArgs untuk validasi argumen
  • Bantuan dan pelengkapan dibuat secara otomatis
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 “Dasar-Dasar Cobra” gratis?

Ya — teks lengkap “Dasar-Dasar Cobra” 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 “Dasar-Dasar Cobra”?

Perintah root, Run, Args, dan pembuatan bantuan 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 1 dari 4.

Berapa lama pelajaran “Dasar-Dasar Cobra” 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