flag
Gói Flag tích hợp sẵn trong Go thực hiện phân tích cú pháp tham số dòng lệnh, giúp phát triển công cụ dòng lệnh dễ dàng hơn.
Nhập
go
import flagKiểu dữ liệu
Các kiểu được hỗ trợ bao gồm:
- bool
- int
- int64
- uint
- uint64
- float
- float64
- string
- duration
Định nghĩa
Sử dụng flag.Type() để định nghĩa, giá trị trả về là con trỏ
go
name := flag.String("name", "Trương Tam", "Tên")
age := flag.Int("age", 15, "Tuổi")
sex := flag.Bool("sex", true, "Giới tính")Cũng có thể sử dụng flag.TypeVar() để định nghĩa
go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "Trương Tam", "Tên")
flag.IntVar(&age, "age", 15, "Tuổi")
flag.BoolVar(&sex, "sex", true, "Giới tính")Phân tích cú pháp
Gọi flag.Parse() để phân tích tham số, các định dạng tham số dòng lệnh được hỗ trợ như sau:
-flag xxx--flag xxx-flag=xxx--flag=xxx
Tham số kiểu boolean phải sử dụng dấu bằng, việc phân tích Flag sẽ dừng lại trước tham số không phải dòng lệnh đầu tiên.
Các hàm khác
go
func Args() []string //Trả về tất cả tham số không phải lệnh
func NArg() int //Trả về số lượng tham số không phải dòng lệnh
func NFlag() int //Trả về số lượng tham số dòng lệnhVí dụ
go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "Trương Tam", "Tên")
flag.IntVar(&age, "age", 15, "Tuổi")
flag.BoolVar(&sex, "sex", true, "Giới tính")
flag.Parse()
fmt.Println(name, age, sex)Biên dịch và khởi chạy chương trình trong dòng lệnh
powershell
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe
Trương Tam 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
Tuổi (default 15)
-name string
Tên (default "Trương Tam")
-sex
Giới tính (default true)
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -age 15 -name "Lý Tứ" -sex=false
Lý Tứ 15 false
PS D:\WorkSpace\Code\GoProject\bin>