企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 12.10.1. Velocimacro 参数 Velocimacros 的参数可以是以下的VTL元素: + 引用(Reference): 以 '$' 打头的元素 + 字面字符串(String literal) : 比如"$foo" 或 'hello' + 字面数字: 1, 2 …. + 整数范围: \[ 1..2\] 或 \[$foo .. $bar\] + 对象数组: \[ "a", "b", "c"\] + 布尔真 + 布尔假 当把引用作为参数传递给Velocimacros时,请注意引用是按“名字”传递的。这意味着他们的值在每次使用他们的Velocimacro中产生。这个特性允许你在方法调用是传递引用,并在每次使用时进行方法调用。例如,Fo,当调用下面的Velocimacro 时, ``` #macro( callme $a ) $a $a $a #end #callme( $foo.bar() ) ``` 结果是,在方法bar() 中,引用 $foo 被调用了3次。 咋看时,这个特征让人吃惊,当当你考虑一下Velocimacros的原本动机 – 在VTL模板中避免很多“剪切复制”操作—你就会明白。它允许你将无状态对象,比如在一个颜色表格行内重复产生一些颜色次序的对象,传递给Velocimacro。 如果你需要使用这个特征,你通常可以从方法内取得一个值,作为一个新的引用传递给宏: ``` #set( $myval = $foo.bar() ) #callme( $myval ) ```