Regardez la discussion sur this thread. Je ne suis pas capable de suivre comment avoir un bloc pour aller chercher est une meilleure solution.options.fetch. Je ne comprends pas
Répondre
Dans le first patch sur Rails ticket #4558:
options.fetch(:alt, File.basename(src, '.*').capitalize)
Cette ligne exécute le nom de base et capitalisent fonctions et passe ensuite le résultat en Hash#fetch
peu importe si une valeur pour: alt existe déjà dans le hachage d'options.
Dans le updated patch:
options.fetch(:alt) { File.basename(src, '.*').capitalize }
Le même nom de base/code est capitalise uniquement exécutée lorsque Hash#fetch
a besoin de la valeur par défaut (à savoir quand la touche: alt n'existe pas dans le hachage d'options). Cela signifie que le calcul (éventuellement coûteux) de la valeur par défaut peut être ignoré si ce n'est pas nécessaire.
Voir la documentation au Hash#fetch
pour plus de détails.
I Je pensais que c'était le cas mais je suppose que mon test n'était pas bon. Comme le résultat était le même dans les deux cas, je me suis senti confus. Merci. –
Je ne sais pas ce que Rails de canard poinçonnage a été fait à Hash#fetch
, mais avec des objets Plain Old Ruby, je l'utilise plutôt que Hash#[]
parce que quand je demande quelque chose et ce n'est pas disponible, je veux savoir à ce sujet . Ceci est appelé « défaut précoce » (ou « Crashing précoce » dans Le programmeur deList of Tips Pragmatique)
- 1. Je ne comprends pas Domaines d'application
- 2. Je ne comprends pas comment utiliser LINQ
- 3. débogueur Xcode, je ne comprends pas ce
- 4. Je ne comprends pas le programme
- 5. AVL Tree Code - Je ne comprends pas
- 6. Je ne comprends pas getNextIncludedTime() dans Quartz
- 7. Problèmes CSS que je ne comprends pas
- 8. Je ne comprends pas HQL rejoint
- 9. urlrewriter.net/C#/Je ne comprends pas
- 10. Je ne comprends pas std :: tr1 :: unordered_map
- 11. PLINQ Exception d'agrégat Je ne comprends pas
- 12. Ne comprends pas cette syntaxe
- 13. Je ne comprends pas comment ce tableau se produit
- 14. Je ne comprends pas les résultats du statut #service tomcat6
- 15. Je ne comprends pas cette implémentation de l'algorithme de Huffman
- 16. Je ne comprends pas IEnumerable <T>
- 17. Java Collections liste de copie - Je ne comprends pas
- 18. Comment utiliser un conteneur IoC ?? Je ne comprends pas
- 19. Je ne comprends pas comment Assembly fonctionne avec ASCII?
- 20. Je ne comprends pas pourquoi ce ClassNotFoundException est jeté
- 21. Je ne comprends toujours pas les dépôts SVN en eclipse
- 22. Je ne comprends pas le code C suivant la ligne
- 23. Je ne comprends pas la double syntaxe du délégué d'événement
- 24. objectif-c délégués et conception d'événements (je ne comprends pas)
- 25. Je ne comprends pas la déclaration de la méthode const
- 26. donné une erreur unicode Je ne comprends pas
- 27. Paramètre impair Je ne comprends pas dans gridlabd threadpool.c
- 28. Création de RRD, Je ne comprends pas du tout
- 29. ne comprends pas cette ligne de JavaScript
- 30. ne comprends pas quelques lignes codes ruby
Désolé mon « pour éviter un calcul inutile en cas l'option: alt est spécifié » pas assez clair :-) –