gpt4 book ai didi

groovy - 通过键获取 Groovy 映射值

转载 作者:行者123 更新时间:2023-12-02 09:03:54 26 4
gpt4 key购买 nike

我是一个十足的菜鸟,我有这个简单的 map :

def BranchToPort = [
[branch: 'master' , port: 15565],
[branch: 'Release' , port: 15566],
[branch: 'Feature' , port: 15567],
[branch: 'Prototype', port: 15568],
[branch: 'HotFix' , port: 15569]
]

并给定分支名称( key ),我想获取端口号,最好是在一行代码中。奇怪的是,互联网上有大量根据相应值获取 key 的示例,但反之则不然。

最佳答案

假设分支名称是唯一的,您可以编写一个简单的方法来返回给定分支名称的端口

def port(String branchName) {
BranchToPort.find { it['branch'] == branchName }?.get("port")
}

只是为了解释一下您提到的“我是一个十足的菜鸟”

  • def port(StringbranchName) 这里我们声明一个采用字符串值branchName的方法
  • BranchToPort.find 因为 BranchToPort 是一个 groovy 集合,我们可以使用 .find 它采用一个闭包,由大括号表示。此闭包将在集合中的每个项目上执行,find 的功能是它将返回第一个匹配项目。
  • it['branch'] ==branchName 这是我们的闭包内的“获取与此条件匹配的第一个项目”。使用 it 引用集合中的项目。在这里,我们访问 "branch" 键并检查该值是否与输入 branchName 匹配。
  • }['port'] 最后访问 key 以提取值。
  • ?.get("port") 在 Royg 发表评论后编辑。我们使用安全的空检查器 ? 并尝试访问“端口”值。 ? 将防止空指针异常。

最后一点,在 Groovy 中方法将返回最后执行的语句,因此无需使用 return 或将方法中的语句分配给变量。

希望这有帮助。

[编辑]忘记放一个调用该方法的例子:

portNumber = port("master")
assert portNumber == 15565
> True

关于groovy - 通过键获取 Groovy 映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45631706/

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