F# 在Argu中,获取看似可选参数的缺少参数错误
这是我的密码:F# 在Argu中,获取看似可选参数的缺少参数错误,f#,f#-argu,F#,F# Argu,这是我的密码: 打开Argu 类型CliArguments=int选项的计数 具有 IArgParserTemplate与的接口 会员国的用法= 将s与计数->“项目数”匹配 [] 让主argv= 让errorHandler=ProcessExiter(colorizer=function ErrorCode.HelpText->None | u->Some System.ConsoleColor.Red) 让parser=ArgumentParser.Create(errorHandler=e
打开Argu
类型CliArguments=int选项的计数
具有
IArgParserTemplate与的接口
会员国的用法=
将s与计数->“项目数”匹配
[]
让主argv=
让errorHandler=ProcessExiter(colorizer=function ErrorCode.HelpText->None | u->Some System.ConsoleColor.Red)
让parser=ArgumentParser.Create(errorHandler=errorHandler)
让cliArguments=parser.Parse(argv)
cliArguments.GetResult(Count)|>printfn“Count=%A”
0//返回整数退出代码
注意,我已经将Count DU case定义为int选项。但是,当我在没有命令行参数的情况下运行程序时,会收到以下消息:
错误:缺少参数“--count”。
我希望--count
参数是可选的。如果没有包含在命令行中,我希望计数结果将是None
如何在命令行上将
--count
设置为可选?将count case设置为int选项,将其设置为int
并调用GetResult(…)
传递默认值:
type CliArguments=整数计数
:
:
cliArguments.GetResult(计数,defaultValue=10)
注:
导致缺少参数异常的是对GetResult(…)
的调用,而不是对Parse(…)
的调用
在某些情况下,DU案例的类型仍然是一个选项。可选的DU类型使参数的参数成为可选的。它不会使参数成为可选参数。换句话说,如果Count是一个int选项
,那么--Count 10
和--Count
都是有效的命令行参数。第一个将导致一些(10)
。第二个将导致None