Dasar-Dasar Cobra
Perintah root, Run, Args, dan pembuatan bantuan
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 myappPerintah 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.goValidasi 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
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.