- ตัวแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งที่เป็นไปตามมาตรฐาน GNU เช่น
./test -vo out.png --size 256 input.txt
- มีข้อความช่วยเหลือในตัวผ่าน
-h และ --help
- แมปอาร์กิวเมนต์เข้ากับฟิลด์ของ struct ด้วยการตั้งค่าแท็ก
- รองรับฟิลด์ชนิดข้อมูลเชิงประกอบ เช่น อาร์เรย์ สไลซ์ และ struct
- รองรับซับคอมมานด์แบบซ้อนกัน
กฎของอาร์กิวเมนต์บรรทัดคำสั่งแบบ GNU
- รายการที่ขึ้นต้นด้วยขีดกลาง (
-) ถือเป็นออปชัน
- สามารถรวมหลายออปชันเข้าด้วยกันได้ (
-abc เทียบเท่ากับ -a -b -c)
- ออปชันแบบยาวขึ้นต้นด้วยขีดกลางสองตัว (
--abc)
- ชื่อออปชันใช้ได้เฉพาะอักขระตัวอักษรและตัวเลข
- ค่าของออปชันสามารถกำหนดด้วยช่องว่าง เครื่องหมายเท่ากับ (
=) หรือค่าที่ต่อเนื่องกันได้ (-a1, -a=1, -a 1 เหมือนกันทั้งหมด)
- สามารถผสมค่าออปชันและค่าที่ไม่ใช่ออปชันได้โดยไม่มีปัญหา
- ออปชันสามารถปรากฏในลำดับใดก็ได้
-- หมายถึงสิ้นสุดออปชัน ดังนั้นอาร์กิวเมนต์หลังจากนั้นทั้งหมดจะถูกมองเป็นค่าที่ไม่ใช่ออปชัน
- เดี่ยวโดยทั่วไปหมายถึงอินพุตหรือเอาต์พุตมาตรฐาน
- หากระบุออปชันเดียวกันหลายครั้ง จะใช้ค่าครั้งสุดท้าย
- ออปชันสามารถมีได้หลายค่า (
-a 1 2 3 จะถูกประมวลผลเป็น [1,2,3])
ฟีเจอร์เพิ่มเติม
- การนับออปชัน:
-vvv จะตั้งค่า v = 3
- การเพิ่มค่าออปชัน:
-v 1 -v 2 จะตั้งค่า v = []int{1, 2}
- ออปชันแบบบูลีน:
--var คือเปิดใช้งาน และ --no-var คือปิดใช้งาน
- ออปชันสามารถเป็นชนิดข้อมูลเชิงประกอบ เช่น struct, slice และ map ได้
- ออปชันสามารถดึงค่ารายการ/พจนานุกรมจากแหล่งข้อมูล (เช่น SQL) ได้
1 ความคิดเห็น
เคยใช้
cobraมาก่อน แต่เมื่อเทียบกันแล้วargpมีตัวเลือกให้ตั้งค่าสำหรับ flag ได้หลากหลายกว่านะครับ 555