1

Play!/Scala 上的新手问题:如何将字符串存储在result中?

object App extends Application {
  def route = {
    case GET(Path("/feed/geocodeo")) & QueryString(qs) => Action{ request=>
      val result = QueryString(qs,"latlng").getOrElse("40.714224,-73.961452")
      val response = WS.url("http://maps.googleapis.com/maps/api/geocode/json?latlng="+result.toString+"&sensor=false").get()
      val body = response.value.get.body
      Ok(body).as("text/html")
    }
  }
}
4

1 回答 1

2

如果 QueryString 返回 List[String],那么您的代码不应编译。

scala> List("hi","bye").getOrElse("whatever")
<console>:8: error: value getOrElse is not a member of List[java.lang.String]
              List("hi","bye").getOrElse("whatever")
                               ^

你的代码编译了吗?如果是这样,QueryString 是具有 getOrElse 方法的东西,结果是最具体的 String 超类以及 QueryString 返回的任何内容。

通常你会在 an 上调用 getOrElse Option[Something],并且传递给 getOrElse 的对象应该具有相同的类型,Something否则你将返回一个类型不会有用的对象。

于 2013-02-15T20:26:19.583 回答