循环遍历Groovy多行字符串中的列表

Rya*_*nch 2 groovy

我想在Groovy中创建一个多行字符串.我有一个字符串列表,我想在多行字符串中循环.我不确定这个的语法是什么.像下面的东西......

    def html = """\
       <ul>
          <li>$awaiting.each { it.toPermalink()}</li>
       </ul>
     """
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 6

下列:

class PLink {
  String name
  String toPermalink() {
    "link->$name"
  }
}
def awaiting = [ new PLink( name:'one' ), new PLink( name:'two' ), new PLink( name:'three' ) ]
def html = """<ul>
  <li>${awaiting.collect { it.toPermalink() }.join( "</li><li>" )}</li>
</ul>"""
Run Code Online (Sandbox Code Playgroud)

生成此输出:

<ul>
  <li>link->one</li><li>link->two</li><li>link->three</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

它基本上调用每个元素上的方法,collects将结果返回到另一个列表中,然后joins将列表一起变成一个字符串