argp - ตัวแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งสไตล์ GNU สำหรับ Go
(github.com/tdewolff)- ตัวแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งที่เป็นไปตามมาตรฐาน 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