基本介绍
命名行解析最主要的是针对于选项的解析, gcmd
组件提供了 Parse
方法,用于自定义解析选项,包括有哪些选项名称,每个选项是否带有数值。根据这一配置便可将所有的参数和选项进行解析归类。
大部分场景下,我们并不需要显式创建 Parser
对象,因为我们有层级管理以及对象管理方式来管理多命令。但底层仍然是采用 Parser
方式实现,因此本章节大家了解原理即可。
相关方法:
更多 Parser
方法请参考接口文档: https://pkg.go.dev/github.com/gogf/gf/v2/os/gcmd#Parser
func Parse(supportedOptions map[string]bool, option ...ParserOption) (*Parser, error)
func ParseWithArgs(args []string, supportedOptions map[string]bool, option ...ParserOption) (*Parser, error)
func ParserFromCtx(ctx context.Context) *Parser
func (p *Parser) GetArg(index int, def ...string) *gvar.Var
func (p *Parser) GetArgAll() []string
func (p *Parser) GetOpt(name string, def ...interface{}) *gvar.Var
func (p *Parser) GetOptAll() map[string]string
其中, ParserOption
如下:
// ParserOption manages the parsing options.
type ParserOption struct {
CaseSensitive bool // Marks options parsing in case-sensitive way.
Strict bool // Whether stops parsing and returns error if invalid option passed.
}