gpt4 book ai didi

scala - 我如何合并两个 Scala (String, String) for Play!查询字符串?

转载 作者:行者123 更新时间:2023-12-04 19:54:00 39 4
gpt4 key购买 nike

最终目标是连接两个传递给 Play!网络服务请求。看起来像:

WS
.url(requestUri)
.withQueryString(finalQueries)

我尝试使用几个运算符,但都失败了:

val finalQueries = queryParams match {
case Some(queries) =>
tokenParam ++ queries
case None =>
tokenParam
}

错误: value++ 不是 (String, String) 的成员

API 文档显示 withQueryString 接受 (String, String)*

我对 Play! 的 withQueryString 方法有点困惑,因为它似乎在我每次访问它时都完全替换了整个查询字符串。有什么方法可以适本地组合查询字符串?

编辑:下面是一个示例查询字符串(类型语法及其最终外观有点令人困惑...):

val queryString = ("timeMin"-> "2012-08-20T01%3A11%3A06.000Z")

最佳答案

从你的代码来看,在我看来 queryParams 应该是 Option[(String, String)],从错误消息来看,tokenParam 必须是 (String, String)
我想你可以试试这个:

val finalQueries = Seq(tokenParam) ++ queryParams
WS
.url(requestUri)
.withQueryString(finalQueries:_*)

之所以有效,是因为 Option 可以被视为 Seq,例如:Seq(1, 2)++ Some(3) 将变为Seq(1, 2, 3)Seq(1, 2)++ None 将只是 Seq(1, 2)

然后 .withQueryString 接受一个 (String, String)* 意味着你可以像 .withQueryString(param1, param2, andMore) 那样调用它,
或者您可以使用 Seq 调用它,并通过在 末尾写入 : _* 告诉编译器将其视为 anythingRepeated>Seq 类似于 .withQueryString(Seq(param1, param2, andMore): _*)

关于scala - 我如何合并两个 Scala (String, String) for Play!查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202317/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com