これをグーグルで検索する方法がわかりません。たとえば、次のようなコードがあります。
import dispatch._
object Main extends App {
val svc = url("http://www.php.net/license")
val src:Promise[String] = Http(svc OK as.String) recover {
case StatusCode(301) => "got the 301, now where the heck should I go?"
case error => "caught error:" + error.toString
}
println(src())
}
ディスパッチ パッケージから、recover は PartialFunction[Throwable,A] を受け取ります。私の場合、A は String になります。その URL は常に 301 を返します。おそらく、代わりにどこに行けばよいかを示すメッセージが表示されます。しかし、そのパターン マッチングでは、statuscode によって継承された多数のメソッドにアクセスして、何が問題なのかを知るにはどうすればよいでしょうか?
Haskell では、次のようにします。
case x of
sc@StatusCode(301) -> getMessage(sc)
error -> ...
元のオブジェクトを scala で取得できない場合、このコードが機能するように記述できる方法はありますか?