You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xtend模板中实现指定Java while循环的等效遍历功能

Xtend模板实现倒序步长2遍历的可行方案

Xtend模板的«FOR»语法仅支持迭代Iterable类型对象,不支持原生Java风格的三段式for循环和while循环输出逻辑,可以通过以下两种方案实现等效功能:

方案1:使用内置扩展方法生成索引序列(推荐)

Xtend为数值类型提供了downto扩展方法,可以直接生成指定范围、指定步长的倒序索引序列,直接迭代该序列即可,逻辑和原Java代码完全一致:

«FOR index : (refin.size - 1).downto(1, 2)»
    «refin.get(index)»::=«refin.get(index - 1)»
«ENDFOR»

参数说明:

  • 起始值为refin.size -1,对应原代码的初始索引
  • 结束值为1,对应原循环的index>0终止条件
  • 步长为2,对应原代码的index -=2逻辑

方案2:提前构造遍历索引集合

如果使用的Xtend版本不支持带步长的downto方法,可以先在模板变量定义块中使用while逻辑构造需要遍历的索引集合,再迭代该集合输出:

// 模板头部先构造索引集合
«val traversalIndexes = new ArrayList
var tempIndex = refin.size - 1
while (tempIndex > 0) {
    traversalIndexes.add(tempIndex)
    tempIndex -= 2
}»
// 迭代输出
«FOR index : traversalIndexes»
    «refin.get(index)»::=«refin.get(index - 1)»
«ENDFOR»

内容的提问来源于stack exchange,提问作者programming_QA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:54:03