我是 scala 的新手,不明白这段代码在做什么:
parser.parse(args, Config()) map {
config =>
//do stuff here
} getOrElse {
//handle stuff here
}
这是来自在这里找到的 scopt 库
理想情况下,我想要做的是将我的代码执行所有“在这里做的事情”到一个方法中,这个方法可以完成我想要它做的事情。
但是,当我像这样定义我的方法时:
def setupVariables(config: Option){
host = config.host
port = config.port
delay = config.delay
outFile = config.outFile
if (!(new File(config.inputFile)).exists()) {
throw new FileNotFoundException("file not found - does the file exist?")
} else {
inputFile = config.inputFile
}
}
所以它被称为:
parser.parse(args, Config()) map {
config =>
setupVariables(config)
} getOrElse {
//handle stuff here
}
我得到错误:error: class Option takes type parameters
def setupVariables(config: Option){
我的困惑出现了,因为我没有“明白”parser.parse(args, Config()) map {
config =>
//do stuff here
}
正在做什么。我可以看到 parser.parse 返回一个选项,但是“map”在这里做什么?