我正在尝试使用Grails 1.3.7文档中的g:set示例来总结一组值,但它看起来像g:set将整数视为字符串。
$ {grossScore.score}的值为[5,5,4,4],而不是总数为18,总数为5544。
<g:set var="totalScore" value="0"/>
<g:each var="grossScore" in="${Score.findAllByScorecard(cardGross)}">
<g:set var="totalScore" value="${totalScore + grossScore.score}"/>
</g:each>
答案 0 :(得分:7)
另一种选择是确保totalScore
是一个整数,如下所示:
<g:set var="totalScore" value="${0}"/>
我相信这会迫使totalScore成为一个整数,所以你不必担心连接而不是添加。
答案 1 :(得分:1)
如果你知道grossScore.score值是一个整数,你可以在你的补充中交换这两个:
<g:set var="totalScore" value="${grossScore.score + totalScore}"/>
通常,操作的左手确定操作的类型,假设存在这种操作。由于左边有totalScore,而且它只是一个Object(g:set的默认值),因此使用默认的Object.plus()操作,这与String非常相似。
如果你将grossScore.score放在左侧,那么它应该尝试使用Integer.plus(),它可以为你提供你想要的东西。