Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于参数的若干问题 #14

Closed
lollipop190 opened this issue May 17, 2020 · 1 comment
Closed

关于参数的若干问题 #14

lollipop190 opened this issue May 17, 2020 · 1 comment
Labels
good first issue Good for newcomers

Comments

@lollipop190
Copy link

1.所谓的必选参数和用户参数能否给一个准确的定义,在写题目的时候就特别不清晰,而百度的时候相关资料几乎找不到。
是否可以理解为 -* 后面紧跟的第一个就是必选参数, 再后面就是用户参数?
如测试用例中的testHelp内部的 -h -s arg0 -p hello
这里是否可以理解为 arg0 是-s的必选参数 ,hello是-p的必选参数,还是理解为其他类型

2.对于getArgs()方法和getOptionValue()方法,是否可以理解为,前者获取用户参数,后者获取全部参数?

3.用户参数的存在意义是什么?
如测试用例中的testSideEffect中的 -s arg0 既然-s就是修改sideEffect属性,又何必添加一个用户参数?
再比如用例testPirnt中的 -p hello arg0 既然-p是打印hello,那又何必带上arg0这一用户参数?

@lollipop190
Copy link
Author

来自助教的优质解答!

用户参数是我定义的一个概念,我也没找到它的准确叫法。但是这个用户参数是有存在意义的。
选项是可以带参数也可以不带参数,比如-s就规定没有参数,这个时候arg0和-s没有任何关系。
并且参数的数量也是可以指定的,不一定只有一个,有相关的API可以做到这个事情。
选项如果带有N个参数,那么程序会默认把-*后面的N个字符串当成这个选项的参数,当然这些字符串不能带有“-”,否则会被认为是另一个选项。

用一个好理解的说法就是所有的选项指定了一些和程序相关的属性,而用户参数才是真正程序关注的东西
比如你要吃饭,选项可以更改你使用的餐具,但是用户参数指的是你吃什么,没有用户参数你显然无法完成吃饭这件事,但是你使用的什么餐具对整件事影响很小,它只是一个附带的属性
题目里只不过是没有处理用户参数,并不意味着所有的程序都不需要用户参数

getArgs获取的是全部用户参数
getOptionValue里需要传入某个选项的名字,然后回返回一个string数组,这就是这个选项的所有参数

@XZ-X XZ-X added the good first issue Good for newcomers label May 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants