Même avec JavaScript, je veux voir Python `range ()`!

introduction

for i in range(10):
    print(i)
    #Cool

La théorie est bonne, alors montrez-la bientôt!

/**
 * @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 ~Jusqu'à 9 sont émis dans l'ordre
}

que faites-vous?

La fonction range renvoie le résultat de l'exécution de la fonction générateur. C'est un wrapper qui distribue simplement les arguments à la fonction de générateur. «rangeGen» est la fonction du générateur.

―― Qu'est-ce qu'un générateur? --Une fonctionnalité relativement nouvelle de JavaScript ajoutée dans ES2015 ―― Que générez-vous? --Générer des objets répétables ―― Qu'est-ce que la répétition?

Pour plus de détails sur l'utilisation de la fonction de générateur, veuillez lire MDN.

Pour le moment, je fais un gars qui peut énumérer les nombres de «de» à »à».

en conclusion

Maintenant vous pouvez aussi for (const i of range (10)) { en JavaScript.

prime

Personnellement, la semelle de Python est gênante car il faut faire attention à l'ordre des arguments. Donc ci-dessous (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);
}

c'est tout.

Recommended Posts

Même avec JavaScript, je veux voir Python `range ()`!
Je veux faire le test de Dunnett en Python
Je veux créer une fenêtre avec Python
Je veux fusionner des dictionnaires imbriqués en Python
Je veux afficher la progression en Python!
Je veux écrire en Python! (1) Vérification du format de code
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux écrire en Python! (2) Écrivons un test
Je veux échantillonner au hasard un fichier avec Python
Je veux travailler avec un robot en python.
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Je veux faire quelque chose avec Python à la fin
Je veux manipuler des chaînes dans Kotlin comme Python!
Je veux déboguer avec Python
Je veux faire quelque chose comme sort uniq en Python
Je veux pouvoir exécuter Python avec VS Code
Je veux ajouter un joli complément à input () en python
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
J'ai essayé d'implémenter PLSA dans Python 2
Je veux utiliser des rails avec des rails même dans un environnement vagabond
Je veux utiliser jar de python
Je veux créer un environnement Python
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je souhaite améliorer l'efficacité avec Python même dans les systèmes expérimentaux (2) RS232C et pySerial
[Couches Python / AWS Lambda] Je souhaite réutiliser uniquement le module dans AWS Lambda Layers
J'ai essayé d'implémenter ADALINE en Python
Je voulais résoudre ABC159 avec Python
J'ai essayé d'implémenter PPO en Python
Je souhaite améliorer l'efficacité avec Python même dans un système expérimental (1) Installer Anaconda avec Chocolatey
Je veux intégrer Matplotlib dans PySimpleGUI
[Langage C] Je souhaite générer des nombres aléatoires dans la plage spécifiée
Je souhaite convertir une table convertie en PDF en Python en CSV
Je veux convertir par lots le résultat de "chaîne de caractères" .split () en Python
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Maintenance de l'environnement réalisée avec Docker (je souhaite post-traiter GrADS en Python
Je veux colorer une partie de la chaîne Excel avec Python
Je veux faire un patch monkey seulement en partie en toute sécurité avec Python
Je veux utiliser MATLAB feval avec python
Je veux corriger Datetime.now dans le test de Django
Je veux mémoriser, y compris les arguments de mots clés de Python
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
Je veux moquer datetime.datetime.now () même avec pytest!
Je veux faire un jeu avec Python
J'ai écrit "Introduction à la vérification des effets" en Python
Je souhaite stocker les informations de la base de données dans la liste
J'ai essayé d'implémenter TOPIC MODEL en Python
Je souhaite utiliser le répertoire temporaire avec Python2
Je veux utiliser le solveur ceres de python
#Unresolved Je veux compiler gobject-introspection avec Python3
Je veux résoudre APG4b avec Python (chapitre 2)
Je souhaite vendre les produits que j'ai listés par python scraping Mercari
[Python] Je veux gérer 7DaysToDie depuis Discord! 2/3
Je veux créer du code C ++ à partir de code Python!
J'ai essayé d'implémenter le tri sélectif en python