我是新來的Scala和不明白這個代碼是這樣做的:斯卡拉scopt代碼 - 地圖getorelse?
parser.parse(args, Config()) map {
config =>
//do stuff here
} getOrElse {
//handle stuff here
}
這是從scopt庫found here
理想我想要做的就是把我的代碼,做所有的「在這裏做些事情「轉變成一種方法,那就是做我想做的事情。
然而,當我這樣定義,所以我的方法:
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返回一個Option,但是在這裏做什麼是「map」?發生