जोड़ा जा रहा है मैं एक शानदार तरीका एक समय पाश का सहारा के बिना Xtend में निम्नलिखित व्यक्त करने के लिए खोजने के लिए प्रतीत नहीं कर सकते हैं:Xtend के लिए-लूप समर्थन और रेंज समर्थन
for(int i = 0; i < 3; i++){
println("row ");
}
println("your boat");
तो, मुझे लगता है कि मेरे सवाल का दो है भागों:
- क्या उपर्युक्त करने का कोई बेहतर तरीका है? मुझे उनके documenation
- में कुछ भी वादा नहीं हुआ था, भाषा की सुविधाओं का एक बड़ा हिस्सा केवल Xtend लाइब्रेरी एक्सटेंशन हैं (और वे बहुत अच्छे हैं!)। क्या
range()
कार्यक्षमता à la Python है कि मुझे नहीं पता?
मैं अपने खुद के रोलिंग समाप्त हो गया है और निम्नलिखित की तरह कुछ मिल गया:
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
}
}
तुम भी लिख से बच सकते हैं 'Integer' क्योंकि यह पूर्ण रूप से अपने Xtend द्वारा मान लिया जाता है। –