主要观点:介绍了 Rust 库lexopt,认为其“病态简单”,对比getopt(3)后尝试去掉getopt()中的选项字符串,新代码更简洁且功能更多;展示了新代码argv_opt()等函数与getopt()的不同,包括循环条件、处理选项值等方面;讨论了此经历与“端到端论证”的关联,以及lexopt与其他命令行解析库的比较。
关键信息:
lexopt自称“病态简单”的命令行参数解析器,对比getopt(3)后进行改进。- 新代码
argv_opt()等函数的实现细节,如循环条件、处理选项值等。 - 提到“端到端论证”,说明低层级函数可能冗余,此经历符合该论证。
- 介绍
lexopt实现比预期大,与clap对比,建议使用更好的库而非getopt()。
重要细节: getopt()的循环条件在某些系统上可能存在问题,argv_opt()的循环更简单直接。getopt()设置optarg,argv_opt()需调用argv_val()来获取选项值。argv_err()用于打印错误消息和退出程序。lexopt实现比预期大,与clap对比,建议使用更好的库。可根据 0BSD 或 MIT-0 许可证使用文中代码。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。