gpt4 book ai didi

freemarker 函数与宏

转载 作者:行者123 更新时间:2023-12-04 04:38:56 24 4
gpt4 key购买 nike

你好 freemarkers 大师

我理解freemarker函数和宏的区别在于宏可以打印到输出但不能返回值,而函数可以返回值但不能打印到输出。

好吧,我遇到了问题,因为我需要打印和返回值:

我正在使用 freemarker 进行递归树探索,因此我有一个被递归调用的宏。在探索树时,我需要将节点信息打印到输出,还需要计算并返回有关探索节点的统计信息(例如探索节点的特定属性的总和)

如果我使用被递归调用的宏,我可以打印节点信息,但不能将统计信息返回给调用实体。

如果我使用递归调用的函数,我可以返回统计信息,但不能在输出上打印节点信息。

一种解决方案可能是探索树两次,一次是打印节点信息,另一次是收集统计信息,但我不想使用这种不雅的解决方案。

有人可以提出更好的解决方案吗?

谢谢

最佳答案

或者您甚至可以使用全局变量作为统计信息的存储:

<#global stats = [] />

<#-- then when you call your function -->
<#assign = method() />

<#function method param = "">
<#-- do something and before you return you push the stats to the global variable, if you choose my approach of "merging" sequences, be careful that you wrap the new stats item also in a sequence or it will fail miserably =) -->
<#global stats = stats + [{"statvar1": 10, "statvar2": 30}] />

<#return whateveryoulike />
</#function>

关于freemarker 函数与宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11860964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com