gpt4 book ai didi

scala - 如何禁用 Scopt 的 "Unknown options"异常?

转载 作者:行者123 更新时间:2023-12-03 12:16:02 24 4
gpt4 key购买 nike

我有一个基本配置案例类,它用作几个不同脚本的配置的公共(public)部分。我希望能够停止对解析此基本配置的 OptionParsers 的复制粘贴代码(例如,每个脚本都需要 --cluster--port,所以我希望单个基本 OptionParser 始终处理该问题),并让最小的自定义 OptionParser 处理每个脚本独有的选项(例如 --asdf )。

问题是如果我要求基本解析器解析包含 --asdf 的参数,斯科普特提示:

[error] Error: Unknown option --asdf
[error] Usage: Config [options]
[error]
[error] -c <value> | --cluster <value>
[error] Cluster the machine is part of
[error] -p <value> | --port <value>
[error] Port to listen on
...
[error] Exception in thread "main" java.util.NoSuchElementException: None.get

有没有办法让它忽略未知的论点?

最佳答案

当定义自定义 OptionParser , 只需多加一个

override def errorOnUnknownArgument = false

进入定义。例如,
def optionParser = new OptionParser[CustomConfig]("Config") {
override def errorOnUnknownArgument = false

opt[String]('a', "asdf") optional () action { (x, c) =>
c.copy(asdf = x)
} text "Do something custom"
...
}

关于scala - 如何禁用 Scopt 的 "Unknown options"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com