L'une des raisons pour lesquelles j'aime écrire dans Ruby, c'est parce qu'elle est très capable de réaliser beaucoup via une doublure.
J'aime: p>
@sentence = @sentence.split(' ').map!{|x| x = x[0..0].upcase << x[1..-1] }.join(' ')
7 Réponses :
Vous avez posté l'ONLININER:
@sentence.gsub!(/\S+/,&:capitalize)
Juste maintenant, vous avez complètement brisé son esprit, soit il a absolument triplé son excitation pour des doublures.
J'espérais apprendre beaucoup des réponses ici et le commentaire de Ken a été un parcours éducatif parfait! Définitivement x3'd l'excitation d'une doublure
+1 @sentenence = @ phrase.split ('') .MAP (&: capitaliser) .join ('') code> est ce que j'appellerais élégant.
@Bravingspirit: : quelque chose code> est un symbole, dans ce cas pour le nom d'une fonction. & code> la convertit vers un proc code> en appelant to_proc code> sur le symbole. Lorsque vous appelez to_proc code> sur un symbole, il crée une fonction qui appelle la méthode avec ce nom sur son premier argument. (SO : capitalize.to_proc () code> crée une lambda foo code> que lorsque vous appelez foo (a) code>, il appelle a.capitaliser code>)
Eh bien, j'ai écrit un il y a quelques jours, mais je ne pouvais pas l'utiliser comme une réponse car la question était fermée à ce moment-là. Il remplace la première ligne d'un fichier avec une chaîne si la chaîne n'est pas déjà là.
J'espère que quelqu'un s'améliore également sur celui-ci: P>
ruby -i.bak -pe "print ($_!~/string/ && $.<2) ? \"string\n\":''" filename.txt
Générateur de séquence Fibonacci: même que: p>
Ouvrez un fichier, écrivez-y et fermez-le dans une ligne:
def get_all_coords(type)
eval("@#{type}_coords")
end
Absolument cette émulation de Grep (utilisateur Windows). [ Crédit va à Dave Thomas ]
Le numéro Fibonacci à coup sûr!
def fib(n, t = n < 2 ? n : fib(n-1) + fib(n-2)) t; end
Veuillez éditer et marquer cela comme un wiki communautaire, pour éviter de le fermer pour être subjectif (aucune réponse réelle) :)
La capacité de marquer des questions que la communauté wiki a été supprimée il y a une fois. Voir ceci: meta.stackexchange.com/questions/392/...
Je n'appellerais pas que "élégant", car il est presque illisible. Si un autre programmeur rencontre ce code, ils devront passer plusieurs minutes à la lire pour comprendre ce qu'il va de faire. C'est plus cryptique que élégant. Vous avez sauvegardé des coups de frappe au prix de la lisibilité.
Dans votre exemple, pourquoi ne pas utiliser
string.capitaliser code>? Accordé qu'il est peut-être plus que vous voulez (il masse le reste de la chaîne)@Matchu: vous peut 'T I> Marquez une question en tant que wiki communautaire plus . Il Juste arrive automatiquement. (Je ne sais pas ce qui empêche une réponse d'être fermée comme trop subjective.)
Ce n'est pas une doublure pour moi - le
') code> se produit sur une deuxième ligne parce que c'est si long!Ruby est donc le langage de programmation Arnold Schwarzenegger écrirait-il?
Schwarzenegger m'a toujours frappé comme un gars plutôt fortrain.