关于Play的新手问题!/ Scala: 如何获取存储在结果中的字符串?
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")
}
}
}
答案 0 :(得分: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返回的任何内容。
通常你会在Option[Something]
上调用getOrElse,而传递给getOrElse的对象应该与Something
具有相同的类型,否则你将获得一个类型为isn的对象不会有用。