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