val parser = new scopt.OptionParser [Config](“scopt”){
head(“scopt”,“3.x”)
opt [Int] ('f',“foo”)动作{(x,c)=>
c.copy(foo = x)} text(“foo是一个整数属性”)
opt [File]('o',“out” < file>“)action {(x,c)=>
c.copy(out = x)} text(“out是必需的文件属性”)
opt [(String,Int) k,v),c)=>
c.copy(libName = k,maxCount = v)} validate {x =>
if(x._2> 0)success
else failure(“Value< max>必须> 0”)
} keyValueName(“< libname>”,“< ; max>“)text(”< libname>“的最大计数)
opt [Unit](”verbose“)action {(_,c)=&
c.copy(verbose = true)} text(“verbose is a flag”)
note(“some notes.\\\
”)
help (“help”)文本(“打印此用法文本”)
arg [File](“< file& =>
c.copy(files = c.files:+ x)} text(“optional unbounded args”)
cmd(“update”)action {(_,c)=&
c.copy(mode =“update”)} text(“update is a command。”)child(
opt [Unit](“not-keepalive”)abbr (_,c)=>
c.copy(keepalive = false)} text(“disable keepalive”),
opt [Boolean] >
c.copy(xyz = x)} text(“xyz is a boolean property”)
)
}
// parser.parse返回选项[C]
parser.parse(args,Config())map {config =>
// do stuff
} getOrElse {
//参数不正确,使用消息将显示
}
以下是生成的用法文本
scopt 3。 x
用法:scopt [update] [options] [< file> ...]
-f< value& | --foo< value>
foo是一个整数属性
-o< file> | --out< file>
out是必需的文件属性
--max:< libname> =< max>
< libname>的最大计数
--verbose
verbose是一个标志
一些注释。
--help
打印此用法文本
< file> ...
可选无界参数
命令:update
update是一个命令。
-nk | --not-keepalive
disable keepalive
--xyz< value>
xyz是一个布尔属性