Articles of Idiomes

Python idiomatique: boucle ‘times’

Disons que j’ai une fonction que je veux appeler n fois. En Ruby, j’écrirais: n.times { foo } En Python, je pourrais écrire: for _ in xrange(n): foo() Mais cela semble être une façon pirate de faire les choses. Ma question: Y a-t-il une manière idiomatique de le faire en Python?

Meilleur Loop Idiom pour boîtier spécial du dernier élément

Je suis souvent confronté à ce cas lors de traitements de texte simples et d’impressions où je boucle sur une collection et je veux mettre le dernier élément en majuscule (par exemple, chaque élément normal sera séparé par une virgule, sauf pour le dernier cas). Existe-t-il un idiome de meilleure pratique ou une forme élégante […]

Initialisation DRY Ruby avec argument de hachage

Je me retrouve à utiliser des arguments de hachage pour les constructeurs, en particulier lors de l’écriture de DSL pour la configuration ou d’autres bits d’API auxquels l’utilisateur sera exposé. Ce que je finis par faire, c’est quelque chose comme ceci: class Example PROPERTIES = [:name, :age] PROPERTIES.each { |p| attr_reader p } def initialize(args) […]

LBYL vs EAFP en Java?

Je me suis enseigné récemment Python et j’ai découvert les idiomes LBYL / EAFP en ce qui concerne la vérification des erreurs avant l’exécution du code. En Python, il semble que le style accepté soit l’EAFP, et il semble bien fonctionner avec le langage. LBYL ( L ook Avant Y ou L eap): def safe_divide_1(x, […]

Nom de paramètre nommé Java

Comment implémenter l’idiome de paramètre nommé en Java? (surtout pour les constructeurs) Je recherche une syntaxe similaire à Objective-C et pas celle utilisée dans JavaBeans. Un petit exemple de code serait bien. Merci.

Qu’est-ce qu’un idiome de programmation?

Je vois l’expression “idiome de programmation” comme si elle était communément comprise. Pourtant, dans les résultats de recherche et le stackoverflow, je vois tout … De micro: Incrémenter une variable Représentant une boucle infinie Echange de valeurs de variables À moyen: PIMPL RAII Format, commentaires, style … Pour macro: Programmation de paradigmes ou fonctionnalités de […]

Idiome (s) pour «pour chaque sauf le dernier» (ou «entre chaque paire d’éléments consécutive»)

Tout le monde rencontre ce problème à un moment donné: for(const auto& item : items) { cout << item << separator; } … et vous obtenez un séparateur supplémentaire que vous ne voulez pas à la fin. Parfois, cela n’imprime pas, mais, par exemple, exécute une autre action, mais des actions consécutives du même type […]

Y a-t-il un inconvénient à append un délégué vide anonyme à la déclaration d’événement?

J’ai vu quelques mentions de cet idiome (y compris sur SO ): // Deliberately empty subscriber public event EventHandler AskQuestion = delegate {}; L’avantage est clair: cela évite d’avoir à vérifier la nullité avant de déclencher l’événement. Cependant, je tiens à comprendre s’il ya des inconvénients. Par exemple, est-ce quelque chose qui est largement utilisé […]

Comment inverser un tableau int en Java?

J’essaie d’inverser un tableau int en Java. Cette méthode n’inverse pas le tableau. for(int i = 0; i < validData.length; i++) { int temp = validData[i]; validData[i] = validData[validData.length – i – 1]; validData[validData.length – i – 1] = temp; } Qu’est-ce qui va pas avec ça?

Comment implémenter correctement le modèle de méthode de fabrique en C ++

Il y a une chose en C ++ qui me rend mal à l’aise depuis longtemps, car honnêtement, je ne sais pas comment le faire, même si cela semble simple: Comment puis-je implémenter Factory Method en C ++ correctement? Objectif: permettre au client d’instancier certains objects en utilisant des méthodes de fabrique au lieu des […]