Groovy:在键名中使用变量

问题描述 投票:0回答:1

如何在 Groovy 中的键名中使用变量?

如何将变量用于地图的关键部分中的技巧不适用于以下内容。

如何让它发挥作用?

def x = [users:[[name:'Alice', age:30], [name:'Bob', age:25]], settings:[app:[name:'ExampleApp', version:'1.0.0']]]
println x

def userNameKey = "users[0].name"
def appVersionKey = "settings.app.version"

def firstUserName = x."(userNameKey)" // Accesses "users[0].name"
println "First user's name: ${firstUserName}"

def appVer = x."$appVersionKey" // Accesses "settings.app.version"
println "App version: ${appVer}"

dictionary groovy syntax key
1个回答
0
投票

评估动态表达式的最简单方法 - Eval.me

def x = [
      users:[
        [name:'Alice', age:30], 
        [name:'Bob', age:25]], 
      settings:[app:[name:'ExampleApp', version:'1.0.0']]
]

def userNameKey = "ROOT.users[0].name"
def appVersionKey = "ROOT.settings.app.version"

def firstUserName = Eval.me("ROOT", x, userNameKey)
println "First user's name: ${firstUserName}"

def appVer = Eval.me("ROOT", x, appVersionKey)
println "App version: ${appVer}"

打印:

First user's name: Alice
App version: 1.0.0

© www.soinside.com 2019 - 2024. All rights reserved.