对于我的第一个 Scala 程序,我正在尝试编写一个小型实用程序,它将 XML 文件从一个模式转换为另一个模式。
我开始编写一个方法,它将为我提供文件内容:
def loadFile(filename: String, encoding: String = "utf-8"):Option[String] = {
try
{
val source = scala.io.Source.fromFile(filename, encoding)
val contents = source.mkString
source.close()
return Some(contents)
}
catch
{
return None
}
}
但它不编译。我从该行返回“value apply is not a member of Nothing”和“value isDefinedAt is not a member of Nothing”作为错误消息return None
。
我可以找到返回选项的所有示例都使用匹配,但这在这里没有意义。如果由于某种原因我无法读取文件,我只想不失败。
在这种情况下我该怎么办?在 Scala 中是否有做这种事情的模式?