【发布时间】:2020-03-27 13:46:56
【问题描述】:
我是 scala 和 Gatling 的新手。我正在尝试将 findAll 的结果转换为排序列表,然后返回排序列表的字符串表示形式。我似乎无法使用以下代码执行此操作:
http(requestTitle)
.post(serverUrl)
.body(ElFileBody(sendMessageFile))
.header("correlation-id", correlationId)
.check(status.is(200),
jsonPath("$.data.sendMessage.targetedRecipients").findAll.transform(recipients => {
println("recipients class: " + recipients.getClass)
var mutable = scala.collection.mutable.ListBuffer(recipients: _*)
var sortedRecipients = mutable.sortWith(_ < _)
println("users sorted "+ usersSorted)
usersSorted.mkString(",")
}).is(expectedMessageRecipients))
收件人是 scala.collection.immutable.Vector 类型。 我以为我可以使用 scala.collection.mutable.ListBuffer 将不可变集合转换为可变集合。任何帮助将不胜感激,谢谢。
【问题讨论】:
-
如果您只想对结果进行排序,那么您没有理由在这里使用可变集合。
-
调用 recipients.sortWith(_
-
Vector("5","4","3","2","1").sortWith(_ < _).mkString(", ") == "1, 2, 3, 4, 5"- 向量是不可变的,因此它不会在原地改变代码 但它返回更新的副本 - 只需将结果存储在变量,因为您将其用作表达式而不是语句。 -
我知道它返回了一个更新的副本,我尝试按照您的建议将 sortWith 的结果存储在不同的变量中,但它对我不起作用。
-
你确定这是一个不可变向量吗?
标签: scala gatling scala-gatling