目前,我有一个 OneBranch DevOps 管道,在恢复包时偶尔会失败。通常它会因为一些暂时性错误(例如套接字异常或超时)而失败。重新尝试该作业通常可以解决问题。
有没有办法配置作业或任务重试?
我有一个Map [String,String]类型的条目映射和一个Map [String,Map [String,String]]类型的查找映射。我的目标是在第一张地图中查找第二张地图中的匹配项,一旦有了键匹配项,我就必须用查找第二张字典来替换第一张字典中的值。该示例将清除所有问题。
到目前为止,我已经提出了一种算法,但是我得到了Some(e)和Some(t)的一个奇怪答案。
第一个条目映射如下:
val entries = Map("fruit" -> "aaa", "animal" -> "bbb", "person" -> "jjj")
Run Code Online (Sandbox Code Playgroud)
第二张地图如下:
val lookup = Map("fruit" -> Map("ccc" -> "orange", "aaa" -> "apple"),
"animal" -> Map("zzz" -> "dog", "bbb" -> "cat"))
Run Code Online (Sandbox Code Playgroud)
我期望的结果如下(注意:由于没有匹配项,因此“ person”未正确包含在结果中):
val result = Map("fruit" -> "apple", "animal" -> "cat")
Run Code Online (Sandbox Code Playgroud)
我想出的算法如下:
val res = for{ (k, ev) <- entries
lv <- lookup.get(k).get(ev)} yield (k, lv)
Run Code Online (Sandbox Code Playgroud)
这个算法给我以下结果,我不知道为什么:
Map(fruit -> e, animal -> t)
Run Code Online (Sandbox Code Playgroud)
e和t来自哪里?
algorithm functional-programming scala hashmap pattern-matching
我有一个包含几个键值对的映射,我想要一种方法来遍历这些键值对并尝试将键与另一个映射的值进行匹配。如果存在匹配,则值将相互替换。换句话说,如果存在匹配值,则第二个映射的值将替换第一个映射的值。如果没有匹配,则不包含在结果中。
我尝试使用 scala .map 函数找出逻辑,但我是 scala 新手,不太明白。
例如,我有以下两个 scala Map[String, String]:
val lookupMap = Map("aaa" -> "apple", "bbb" -> "orange", "ccc" -> "banana")
val entriesMap = Map("foo" -> "ccc", "bar"-> "aaa", "baz" -> "zzz")
Run Code Online (Sandbox Code Playgroud)
我想要某种方法来获得以下结果:
val result = Map("foo" -> "banana", "bar" -> "apple")
Run Code Online (Sandbox Code Playgroud)
注意:“baz”未包含在内,因为它与查找映射中的任何内容都不匹配。