开发命令行程序,经常能够遇到arguments
、flags
、options
这三个词。如果是宽泛地说,可以把三者等价看待。那如果是想严格区分,它们之间到底有什么区别呢?
arguments
: 自认为这还比较好理解,如果拿curl -X GET https://github.com
来说,https://github.com
就是argument
。
那么,flags
和options
指什么?我几乎无法区分两者。在我眼里-X GET
就是flags
或者options
。
首先感谢你的问题,为此我也搜了一番。
我觉得你的问题肯定是在 flag 和 option 的区别,arguments 很明显的,对吧。
我搜了一下,这个答案比较权威些,供参考:
来自:https://www.cs.bu.edu/teachin...
flag 和 option 都叫 option,flag 更侧重开关型的 arguments;options 如其名称所描述,是可选的,你拿 ls -al 来说,-a 和 -l 都是“可选的”,就像多选框打勾一样,你可以都打勾,也可以打想打的。
flag 个人感觉更多的用于代码里,用于 bool 型变量名称更常见。