Skip to content

flag

Package Flag bawaan Go mengimplementasikan parsing argumen baris perintah. Package flag memudahkan pengembangan alat baris perintah.

Impor

go
import flag

Tipe

Tipe yang didukung adalah:

  • bool
  • int
  • int64
  • uint
  • uint64
  • float
  • float64
  • string
  • duration

Definisi

Gunakan flag.Type() untuk mendefinisikan, nilai kembalian adalah pointer

go
name := flag.String("name", "张三", "Nama")
age := flag.Int("age", 15, "Usia")
sex := flag.Bool("sex", true, "Jenis Kelamin")

Anda juga dapat menggunakan flag.TypeVar() untuk mendefinisikan

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "Nama")
flag.IntVar(&age, "age", 15, "Usia")
flag.BoolVar(&sex, "sex", true, "Jenis Kelamin")

Parsing

Panggil flag.Parse() untuk mem parsing argumen. Format argumen baris perintah yang didukung adalah sebagai berikut:

  • -flag xxx
  • --flag xxx
  • -flag=xxx
  • --flag=xxx

Argumen tipe boolean harus menggunakan tanda sama dengan. Parsing Flag akan berhenti sebelum argumen non-baris perintah pertama.

Lainnya

go
func Args() []string // Mengembalikan semua argumen non-perintah

func NArg() int // Mengembalikan jumlah argumen non-baris perintah

func NFlag() int // Mengembalikan jumlah argumen baris perintah

Contoh

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "Nama")
flag.IntVar(&age, "age", 15, "Usia")
flag.BoolVar(&sex, "sex", true, "Jenis Kelamin")

flag.Parse()
fmt.Println(name, age, sex)

Setelah kompilasi, jalankan program di baris perintah

powershell
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe
张三 15 true
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -h
Usage of D:\WorkSpace\Code\GoProject\bin\go_build_GoProject_src_main.exe:
  -age int
        Usia (default 15)
  -name string
        Nama (default "张三")
  -sex
        Jenis Kelamin (default true)
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -age 15 -name "李四" -sex=false
李四 15 false
PS D:\WorkSpace\Code\GoProject\bin>

Golang by www.golangdev.cn edit