for i in range(10):
print(i)
#Cool
/**
* @param {...number} args
*/
const range = (...args) => {
const rangeGen = function* (from = 0, to = Infinity, step = 1) {
for (let v = from; v < to; v += step) {
yield v;
}
};
return args.length === 0
? rangeGen(undefined, undefined, undefined)
: args.length === 1
? rangeGen(undefined, args[0], undefined)
: args.length === 2
? rangeGen(args[0], args[1], undefined)
: rangeGen(...args);
};
for (const v of range(2, 10)) {
console.log(v);
// 2 ~Bis zu 9 werden der Reihe nach ausgegeben
}
Die Funktion range
gibt das Ergebnis der Ausführung der Generatorfunktion zurück. Es ist ein Wrapper, der nur die Argumente an die Generatorfunktion verteilt.
rangeGen
ist die Generatorfunktion.
――Was ist ein Generator?
for-of
... Iterator
)const [hoge, huga] = Iterator;
)
--Es ist. Vielleicht
――Ist es nicht ein Array?Ausführliche Informationen zur Verwendung der Generatorfunktion finden Sie unter MDN.
Zur Zeit mache ich einen Typen, der die Zahlen von "von" bis "bis" aufzählen kann.
Jetzt können Sie auch for (const i of range (10)) {
in JavaScript.
Persönlich ist Pythons Rodeln problematisch, da Sie auf die Reihenfolge der Argumente achten müssen. Also unten (TypeScript).
const range = function* ({
start = 0,
stop = Infinity,
step = 1,
}: {
start?: number;
stop: number;
step?: number;
}) {
while (start < stop) {
yield start;
start += step;
}
};
for (const v of range({ stop: 10 })) {
console.log(v);
}
das ist alles.
Recommended Posts