本文继续根据上一篇文章“ Golang实践:COBRA COMMBRA COBRA库”进行优化。主要优化部分是子命令的业务实施。
在旧版本中,每个子命令的输入函数都需要一一判断,并调用相应的业务实现功能。编码的扩展略微麻烦,并不漂亮。一次又一次地决定优化结构的结构形式。
这个想法来自Busybox。
首先定义结构:
实现Traversal命令的平板电脑功能:
使用时,您只需要定义结构的结构并填写相应的命令名称,帮助信息和相应的函数指针。example:example:
命令是非法的 - 也就是说,在结构的结构中找不到法律命令来改善体验。从每个孩子的命令都位于不同的软件包中,大多数thecmd代码子命令输入功能是相同的,很容易扩展。
以孩子为例,入口源代码的旧版本如下:
新版本更改如下:
默认输出帮助信息:
执行子命令,默认情况下将输出法律命令:
源代码在这里。这次眼镜蛇还修改了眼镜蛇的小问题以帮助信息。