1

リクエスト本文から文字列を抽出するコードがありますが、そこにない可能性があるため、Option[String]. 値がある場合は、暗黙的に使用したいと思います。

この変換を行うには、 と書きimplicit val code = googleCodeます。

の値で を作成するのではなく、直接使用できるように暗黙的googleCodeな文字列を作成する方法はありますか?implicit valgoogleCode

    request.getQueryString("code") match {
      case None => 
        Logger.error("unable to retrieve authentication code from google request")
        Redirect(routes.Application.index())

      case Some(googleCode) => Async {
        implicit val code: String = googleCode // <== CONVERTING TO AN IMPLICIT
        Logger.debug("retrieved authentication code, proceeding to get token")
        ...
        Ok("congratulations, ${user.name}, you are logged in!")

コード スニペットは Playframework コントローラーからのものですが、これは一般的な Scala 言語の問題です。

4

2 に答える 2

6

いずれにせよ、Options でのパターン マッチングの使用を避けることをお勧めします。書き方は次のとおりです。

request.getQueryString("code") map { implicit googleCode =>
  // googleCode is an implicit String! do something with it
} getOrElse {
  // handle the None case
}
于 2013-09-13T01:27:40.007 に答える
0

うーん。Option を使用してコードを何らかの Java に変換するソリューションを探す代わりに、次の 3 つの簡単な手順を実行することをお勧めします。

ステップ 1. option.get() など、コード (の種類) が機能するように、最短カットを実行します。ステップ 2. 関数型プログラミングを学ぶ。具体的には、慣用的な、特に FP スタイルの方法で Option を使用する方法を学びます。ステップ 3. 利益。あなたは学ぶことから多くの恩恵を受けるでしょう。

于 2013-09-13T02:59:37.213 に答える