gpt4 book ai didi

java - 如何计算列中结果列表的数量?

转载 作者:行者123 更新时间:2023-12-02 08:59:34 27 4
gpt4 key购买 nike

我正在使用 SpreadsheetMapper 工具,我想计算列中列出的结果数字。

当我使用结果列表时,此代码不起作用。

<#function TW nums...>
<#local sum = 0>
<#list nums as num>
<#local sum += num>
</#list>
<#if nums?size != 0>
<#return sum >
</#if>
</#function>
${TW(result['TotalWeightListResult']!)}

https://prnt.sc/r3h137

当我使用静态列出的数字时它有效。

<#function TW nums...>
<#local sum = 0>
<#list nums as num>
<#local sum += num>
</#list>
<#if nums?size != 0>
<#return sum >
</#if>
</#function>
${TW(10 20)}

引用-https://freemarker.apache.org/docs/ref_directive_function.html

这是我想到的第一件事 - How to calculate the listed numbers from the child datastore?

最佳答案

如果您声明 TWnums...参数,并将列表传递给 TW ,它将只是第一个元素内部 nums 。这是因为 FreeMarker 中的参数没有声明类型,所以你的意思并不明显。

在你的例子中还有一个更令人困惑的巧合。如果您发送somethingMissing!TW ,然后 nums 的第一个元素将是一个空字符串,这是 expression! 的结果手术。因为+已重载,可同时用作加法和字符串连接,sum += num不会失败,相反,它会进行字符串连接。所以首先它转换 sum到字符串"0" ,然后将空字符串附加到其中。所以你最终得到返回值 "0" ,一个字符串,打印时看起来就像数字 0 。但这并不是真正的 0数量。

所以,只需使用 <#function TW nums> ,那么它将按预期工作。如果你想传递一个文字列表,你可以写 TW([10, 20])然后。但我想通常您不想将预定义列表传递给 TW ,所以额外的[]没什么大不了的。

关于java - 如何计算列中结果列表的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60261253/

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