gpt4 book ai didi

for-loop - XTend For-Loop 支持和添加范围支持

转载 作者:行者123 更新时间:2023-12-02 02:07:00 25 4
gpt4 key购买 nike

我似乎无法找到一种在 Xtend 中表达以下内容而不诉诸 while 循环的好方法:

for(int i = 0; i < 3; i++){
println("row ");
}
println("your boat");

所以,我想我的问题有两个部分:

  • 是否有更好的方法来实现上述目的?我在他们的documenation中没有看到任何有希望的东西。
  • 该语言的大部分功能只是 Xtend 库扩展(而且它们非常棒!)。 Python 中是否有我不知道的 range() 功能?

我最终推出了自己的产品并得到了类似以下内容:

class LanguageUtil {

def static Iterable<Integer> range(int stop) {
range(0, stop)
}

def static Iterable<Integer> range(int start, int stop) {
new RangeIterable(start, stop, 1)
}

def static Iterable<Integer> range(int start, int stop, int step) {
new RangeIterable(start, stop, step)
}
}

// implements Iterator and Iterable which is bad form.
class RangeIterable implements Iterator<Integer>, Iterable<Integer> {
val int start
val int stop
val int step
var int current

new(int start, int stop, int step) {
this.start = start;
this.stop = stop;
this.step = step
this.current = start
}

override hasNext() {
current < stop
}

override next() {
val ret = current
current = current + step
ret
}

override remove() {
throw new UnsupportedOperationException("Auto-generated function stub")
}

/**
* This is bad form. We could return a
* new RangeIterable here, but that seems worse.
*/
override iterator() {
this
}
}

最佳答案

完全替代

for(int i = 0; i < 3; i++){
println("row ");
}

for (i : 0 ..< 3) {
println("row ")
}

注意独占范围运算符:..<

关于for-loop - XTend For-Loop 支持和添加范围支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126999/

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