"% w" est ma réplique habituelle aux gens qui sont un peu trop arrogants quant à la lisibilité de Ruby. Fonctionne à chaque fois.
Craig Stuntz
maintenant vous avez une réponse encore meilleure :-)
errata
6
Comme note secondaire non pertinente, l'URL de cette question m'a dérouté pendant un moment pendant le chargement de la page.
Fund Monica's Lawsuit
Réponses:
233
% w guillemets comme des guillemets simples ''(pas d'interpolation de variable, moins de séquences d'échappement), tandis que% W entre guillemets comme des guillemets doubles "".
irb(main):001:0> foo="hello"=>"hello"
irb(main):002:0>%W(foo bar baz #{foo})=>["foo","bar","baz","hello"]
irb(main):003:0>%w(foo bar baz #{foo})=>["foo","bar","baz","\#{foo}"]
Votre exemple montre également des guillemets doubles pour% w. Est-ce correct?
Foton
Oui. Lors de l'impression de la sortie, Ruby utilise toujours des guillemets doubles et des caractères d'échappement tels que #. '#{foo}'et "\#{foo}"vous donner la même chaîne, que vous pouvez vérifier avec '#{foo}' == "\#{foo}"dans irb.
Brian Campbell
C'est peu déroutant à première vue, mais merci pour l'explication.
Foton
29
Une application que j'ai trouvée pour% W vs% w:
greetings =%W(hi hello #{"how do you do"})# => ["hi", "hello", "how do you do"]
Bien qu'il s'agisse d'un ancien post, la question ne cesse de se poser et les réponses ne me semblent pas toujours claires. Alors, voici mes pensées.
% w et% W sont des exemples de types d' entrées délimitées générales , qui se rapportent aux tableaux. Il existe d'autres types qui incluent% q,% Q,% r,% x et% i.
La différence entre les majuscules et les minuscules est que cela nous donne accès aux fonctionnalités des guillemets simples et doubles. Avec des guillemets simples et% w minuscules, nous n'avons pas d'interpolation de code (par exemple # {someCode}) et une plage limitée de caractères d'échappement qui fonctionnent (par exemple \, \ n). Avec des guillemets doubles et% en majuscules W nous n'avons accès à ces fonctions.
Le délimiteur utilisé peut être n'importe quel caractère, pas seulement la parenthèse ouverte. Jouez avec les exemples ci-dessus pour voir cela en effet.
C'est un bon article. Je ne savais pas que vous pouviez créer des chaînes ou d'autres choses de la même manière et que les caractères englobants pouvaient être ce que vous vouliez. Par exemple,%w&readable af&
Réponses:
% w guillemets comme des guillemets simples
''
(pas d'interpolation de variable, moins de séquences d'échappement), tandis que% W entre guillemets comme des guillemets doubles""
.la source
#
.'#{foo}'
et"\#{foo}"
vous donner la même chaîne, que vous pouvez vérifier avec'#{foo}' == "\#{foo}"
dansirb
.Une application que j'ai trouvée pour% W vs% w:
la source
greetings = %w(hi hello how\ do\ you\ do)
% W effectue des substitutions normales entre guillemets doubles. % w ne le fait pas.
la source
Bien qu'il s'agisse d'un ancien post, la question ne cesse de se poser et les réponses ne me semblent pas toujours claires. Alors, voici mes pensées.
% w et% W sont des exemples de types d' entrées délimitées générales , qui se rapportent aux tableaux. Il existe d'autres types qui incluent% q,% Q,% r,% x et% i.
La différence entre les majuscules et les minuscules est que cela nous donne accès aux fonctionnalités des guillemets simples et doubles. Avec des guillemets simples et% w minuscules, nous n'avons pas d'interpolation de code (par exemple # {someCode}) et une plage limitée de caractères d'échappement qui fonctionnent (par exemple \, \ n). Avec des guillemets doubles et% en majuscules W nous n'avons accès à ces fonctions.
Le délimiteur utilisé peut être n'importe quel caractère, pas seulement la parenthèse ouverte. Jouez avec les exemples ci-dessus pour voir cela en effet.
Pour une rédaction complète avec des exemples de% w et la liste complète, les caractères d'échappement et les délimiteurs - jetez un œil à: http://cyreath.blogspot.com/2014/05/ruby-w-vs-w-secrets-revealed .html
marque
la source
%w&readable af&
Documentation pour les chaînes de pourcentage: http://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Percent+Strings
la source
%W
est utilisé pour les éléments de tableau entre guillemets comme%Q
, par exemple,%w
est utilisé pour les éléments de tableau entre guillemets simples comme%q
.la source
Pareil que
%w
est un symbole de raccourci pour le guillemet à la chaîne!la source