Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan argumen baris arahan dalam Go?

Bagaimana untuk menggunakan argumen baris arahan dalam Go?

WBOY
WBOYasal
2023-05-10 19:03:042268semak imbas

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)
}

Jalankan atur cara dan masukkan dua parameter hello dan world:

$ go run main.go hello world

Hasil keluaran:

[/tmp/go-build3065006307/b001/exe/main hello world]

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)
}

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
-name="Alice"Hasil keluaran:

isVerbose=true, name=Alice

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)
}

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

Hasil output:

? Pick a color: 
  ▸ red
    blue
    green
  Answer: red
color=red

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:
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