0
今、次のコードで漫画本のファイル(.cbr &cbz)を開いていますが、もっとうまくいくと思います。それについてどうやって行きますか?Scalaを使って漫画を読む
@throws(classOf[Exception])
def extract(filePath: String): File = {
val unZip = new runCommand(Seq("7z", "x", "-y", filePath, s"-o${tempLocation}"))
if (unZip.exitValue == 0){
new File(tempLocation)
}else{
throw new Exception(unZip.errValue)
}
}
@throws(classOf[Exception])
def preExtract(filePath: String): File = {
try {
filePath.split("\\.").last match {
case "cbz" => extract(filePath)
case "cbr" => extract(filePath)
case _ =>
throw new FileNotFoundException("Incorrect file extension for file: " + filePath)
}
} catch {
case ex: Exception =>
throw ex
}
}
私は現在コンピュータから離れており、これが動作するかどうかはテストできません。なぜ私はあなたがif文の代わりにパターンマッチングを使用しているのが不思議ですか? – Jones
意味的に違いはありませんが、それは主に好みの問題だと思います。単純なケースでは、その差は無視できるものですが、一般的には、特に多型チェックやデコンストラクタを使用するときに、「一致」がより明確でより簡潔なコードになります。上記のコードを 'if'式で書き換えて、あなたが好きなバージョンを見ることができます。 – hezamu