Jadual Kandungan
Apakah parameter baris arahan?
Gunakan bendera untuk menghuraikan parameter baris arahan
Selain menggunakan tiga jenis parameter baris arahan yang disediakan oleh pakej
Artikel ini menerangkan cara menggunakan parameter baris arahan dalam Go. Kami boleh menggunakan
Rumah pembangunan bahagian belakang Golang Bagaimana untuk menggunakan argumen baris arahan dalam Go?

Bagaimana untuk menggunakan argumen baris arahan dalam Go?

May 10, 2023 pm 07:03 PM
pergi bahasa Parameter baris arahan Cara menggunakan

Dalam bahasa Go, parameter baris arahan ialah cara yang sangat penting untuk menghantar input kepada program dan menentukan tingkah laku masa jalan. Go menyediakan pustaka standard flag untuk menghuraikan parameter baris arahan Artikel ini akan memperkenalkan cara menggunakan parameter baris arahan dalam Go.

Apakah parameter baris arahan?

Parameter baris arahan ialah parameter yang dihantar kepada program melalui baris arahan apabila program sedang dijalankan ia sedang berjalan. Contohnya, perintah ls dalam Linux boleh menerima berbilang parameter baris perintah, seperti -l untuk menyenaraikan maklumat terperinci, -a untuk memaparkan fail tersembunyi, dsb.

Dalam Go, kita boleh menggunakan os.Args untuk mendapatkan semua parameter baris arahan diluluskan apabila program dijalankan. os.Args ialah kepingan rentetan, elemen pertama ialah nama program dan elemen berikut ialah parameter baris arahan. Contohnya:

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println(os.Args)
}
Salin selepas log masuk

Jalankan atur cara dan masukkan dua parameter hello dan world:

$ go run main.go hello world
Salin selepas log masuk

Hasil keluaran:

[/tmp/go-build3065006307/b001/exe/main hello world]
Salin selepas log masuk

Anda boleh lihat, os.Args Mengandungi nama program dan dua parameter baris arahan.

Gunakan bendera untuk menghuraikan parameter baris arahan

Walaupun kita boleh mendapatkan semua parameter baris arahan melalui os.Args, dalam pembangunan sebenar, cara yang lebih fleksibel untuk menghuraikan arahan biasanya digunakan parameter baris. Pustaka standard Go menyediakan pakej flag untuk menghuraikan argumen baris arahan. Pakej

flag menyediakan tiga jenis parameter baris arahan: boolean, rentetan dan integer. Ketiga-tiga parameter ini boleh ditakrifkan masing-masing melalui flag.Bool(), flag.String() dan flag.Int().

Berikut ialah contoh mudah yang mentakrifkan boolean dan parameter baris arahan rentetan:

package main

import (
    "flag"
    "fmt"
)

func main() {
    // 定义命令行参数
    var (
        isVerbose bool
        name      string
    )
    flag.BoolVar(&isVerbose, "v", false, "verbose")
    flag.StringVar(&name, "name", "", "name of the user")

    // 解析命令行参数
    flag.Parse()

    // 输出命令行参数
    fmt.Printf("isVerbose=%v, name=%s
", isVerbose, name)
}
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan flag.BoolVar() dan flag.StringVar() masing-masing Mentakrifkan boolean dan a parameter baris arahan rentetan. Kedua-dua fungsi ini mempunyai empat parameter:

  1. Alamat pembolehubah yang digunakan untuk menyimpan nilai parameter baris arahan
  2. Nama parameter baris arahan, yang boleh satu aksara atau berbilang aksara Nama;
  3. Nilai lalai bagi parameter baris perintah;
  4. Selepas mentakrifkan parameter baris arahan, anda perlu memanggil fungsi
untuk menghuraikan parameter baris arahan.

flag.Parse()Jalankan program dan masukkan dua parameter baris arahan

dan

: -v

$ go run main.go -v -name=Alice
Salin selepas log masuk
-name="Alice"Hasil keluaran:

isVerbose=true, name=Alice
Salin selepas log masuk

Kita boleh lihat,

Pakej boleh menghuraikan parameter baris arahan dengan mudah dan menyimpan nilai ke dalam pembolehubah yang sepadan.

flagParameter baris arahan tersuai

Selain menggunakan tiga jenis parameter baris arahan yang disediakan oleh pakej

, kami juga boleh menyesuaikan beberapa jenis parameter baris arahan.

flagSebagai contoh, kami boleh menentukan parameter baris arahan jenis kotak lungsur untuk membenarkan pengguna memilih satu daripada beberapa pilihan:

package main

import (
    "fmt"

    "github.com/AlecAivazis/survey/v2"
)

func main() {
    // 定义下拉框选项
    options := []string{"red", "blue", "green"}

    // 定义命令行参数
    var color string
    prompt := &survey.Select{
        Message: "Pick a color:",
        Options: options,
    }
    survey.AskOne(prompt, &color)

    // 输出命令行参数
    fmt.Printf("color=%s
", color)
}
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan perpustakaan pihak ketiga

Pilihan kotak lungsur ditakrifkan. Kemudian, gunakan fungsi

untuk memaparkan kotak lungsur dan biarkan pengguna memilihnya. github.com/AlecAivazis/survey/v2survey.AskOne()Jalankan program:

$ go run main.go
Salin selepas log masuk

Hasil output:

? Pick a color: 
  ▸ red
    blue
    green
  Answer: red
color=red
Salin selepas log masuk

Kita dapat melihat bahawa pengguna boleh memilih warna daripada beberapa pilihan dan menyimpan nilai yang dipilih dalam

dalam pembolehubah.

colorRingkasan

Artikel ini menerangkan cara menggunakan parameter baris arahan dalam Go. Kami boleh menggunakan

untuk mendapatkan semua parameter baris arahan, atau kami boleh menggunakan pakej

atau kaedah tersuai untuk menghuraikan parameter baris arahan. Menggunakan parameter baris arahan boleh menjadikan program kami lebih fleksibel dan lebih mudah untuk digunakan, dan juga merupakan kemahiran yang diperlukan untuk menulis alatan baris arahan berkualiti tinggi. os.Args

Atas ialah kandungan terperinci Bagaimana untuk menggunakan argumen baris arahan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Apr 02, 2025 pm 02:03 PM

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apr 02, 2025 pm 05:09 PM

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Apr 02, 2025 pm 04:54 PM

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Apr 02, 2025 pm 04:12 PM

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Apakah perbezaan antara struktur definisi kata kunci `var` dan` type` dalam bahasa Go? Apakah perbezaan antara struktur definisi kata kunci `var` dan` type` dalam bahasa Go? Apr 02, 2025 pm 12:57 PM

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Kenapa perlu lulus petunjuk apabila menggunakan perpustakaan Go dan Viper? Kenapa perlu lulus petunjuk apabila menggunakan perpustakaan Go dan Viper? Apr 02, 2025 pm 04:00 PM

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

See all articles