我正在構建一個CLI工具來開始學習一些Go。我發現這種流行的包,我想使用一些像這樣的命令:瞭解帶標誌的子命令
http://godoc.org/github.com/jessevdk/go-flags#Group
https://github.com/jessevdk/go-flags
ex list todos
ex list todos --completed
ex list events
ex list todos events
ex authenticate
我的理解是ex
將是我的主要命令的方式。
list
和authenticate
是子命令。
但什麼是在這種情況下todos
和events
?那麼--completed
會是什麼。是--completed
叫做Option
?這是我看到的神祕人,但不知道我是否正確閱讀。我試圖找到一個具有不同選項的示例,例如此場景,但我找不到一個。我嘗試使用urfave/cli,它首先運行良好,直到我找到一個要求能夠將多個實體傳遞到ex list
,如ex list todos events
。提前致謝!
在50行的fly.go底部,有'var Fly FlyCommand'。爲什麼這需要?如果沒有第50行的聲明,你能不能引用另一個包中的FlyCommand? – Crystal
是的,那就是創建一個'FlyCommand'結構的實例,以便它可以填充值。你會在'main()'函數中看到該變量的地址被傳遞給'NewParser()'中的解析器。然後,當調用Parse()時,go-flags通過命令/選項結構填充適當的字段。 – Corbin