什么时候在 Velocity 中评估字符串?

When are strings evaluated in Velocity?

什么时候在 Velocity 中评估字符串?直接在初始化时还是在引用字符串时?

更好地说明问题的示例代码:

#set($mystring = "A ${myobj.mymethod()} B")

#foreach($element in $somelist)
   $element $mystring
#end

因此该字符串包含一些速度代码。然后考虑以下代码:

#foreach($element in $somelist)
   $element A $myobj.mymethod() B
#end

哪个性能更快,或者它们相等?

提前致谢。

第一种方法更快,因为第二种方法将在每次迭代时调用 $myobj.mymethod()

但是只要这个调用不是扩展性的,您也可以通过减少中间变量来提高代码的可读性。