Может ли значение из карты Groovy иметь собственную ссылку для целей интерполяции? - PullRequest
1 голос
/ 20 апреля 2019

Я хочу знать, можем ли мы интерполировать значение в карте Groovy, используя его другие записи Key-Value. Например,

def ten = 10

def example = [
     a: "apple",
     b: "${ten} bats",
     c: "${example.b}" //or something like self.b
]

Если так, пожалуйста, дайте мне знать, как это сделать?

1 Ответ

3 голосов
/ 22 апреля 2019

Как уже отмечалось в комментариях, литерал для карт, скорее всего, этого не допускает.Но вы можете очень близко подойти к своему коду с помощью tap (или with, если вы <2,5)), что позволяет искать вещи внутри карты (в основном это ссылка на себя, которую вы ищете) </p>

Например

def ten = "ten"

def map = [:].tap{
    a = "apple"
    b = "${ten} ${a}s"
}

assert map == [a:"apple", b:"ten apples"]

...