¿Cuál es la diferencia?Matrices de rubíes:% w vs% W
Respuesta
% w cita como comillas simples ''
(sin interpolación variable, menos secuencias de escape), mientras que% W cita como comillas dobles ""
.
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}"]
Su ejemplo muestra comillas dobles para% w también. ¿Es correcto? – Foton
Sí. Al imprimir el resultado, Ruby siempre usa comillas dobles y escapa caracteres como '#'. ''# {foo}'' y '" \ # {foo} "' te dan la misma cadena, que puedes verificar con ''# {foo}' ==" \ # {foo} "' en 'irb' . –
Es un poco confuso al primero ver, pero gracias por la explicación. – Foton
% W realiza sustituciones de comillas dobles normales. % w no.
Aunque una entrada antigua, la cuestión sigue viniendo y las respuestas no siempre parece claro para mí. Entonces, aquí están mis pensamientos.
% w y% W son ejemplos de Entrada delimitada general tipos, que se relacionan con matrices. Hay otros tipos que incluyen% q,% Q,% r,% x y% i.
La diferencia entre mayúsculas y minúsculas es que nos da acceso a las características de las comillas simple y doble. Con comillas simples y minúsculas% w, no tenemos interpolación de código (por ejemplo, # {algúnCódigo}) y un rango limitado de caracteres de escape que funcionan (por ejemplo, \, \ n). Con comillas dobles y mayúsculas% W, haga tenga acceso a estas características.
El delimitador utilizado puede ser cualquier carácter, no solo el paréntesis abierto. Juega con los ejemplos de arriba para ver eso en efecto.
para un total de escribir con ejemplos de% p y la lista completa, escapar caracteres y delimitadores - echar un vistazo a: http://cyreath.blogspot.com/2014/05/ruby-w-vs-w-secrets-revealed.html
Marcos
Documentación para cuerdas de Porcentaje: http://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Percent+Strings
%W
se utiliza para elementos de matriz de comillas dobles como %Q
, por ejemplo,
foo = "!"
%W{hello world #{foo}} # => ["hello", "world", "!"]
%w
se utiliza para elementos de matriz de una sola cita como %q
.
%w(hello world #{foo})
# => ["hello","world", "\#{foo}"]
- 1. UIImageView vs UIView w/Image - efficiency
- 2. ¿Cuál es la diferencia entre% W y W%
- 3. Cómo importar org.apache Java dependencias w/o w/o Maven
- 4. Asociando programación s/w con programación h/w
- 5. @XmlJavaTypeAdapter w/Herencia
- 6. Provisioning Vagrant w/Chef
- 7. Rieles - Uso% W
- 8. ¿Cuál es la diferencia entre% w {} y% W {} por ciento mayúsculas y minúsculas literales de matriz W en Ruby?
- 9. Ctrl-W dejó de funcionar
- 10. Buscar UISearchDisplayController w/Scope Only
- 11. Buscar enlace específico w/beautifulsoup
- 12. RegEx: \ w - "_" + "-" en UTF-8
- 13. Rellenar un ListView w/AsyncTask
- 14. diferencia b/w <script
- 15. equivalente de Ctrl-W para IntelliJ Mac
- 16. Servicio de Windows w/FileSystemWatcher en C#
- 17. Espacio en la matriz de ruby% w
- 18. usando la opción -W de vim
- 19. python open built-in function: diferencia entre los modos a, a +, w, w + y r +?
- 20. ¿Alguna guía para git merge (w squash)?
- 21. Diff b/w bitmap.recycle() y bitmap = null
- 22. Neural Net Optimize w/Genetic Algorithm
- 23. primavera Gráfico Algoritmo w Nodo tamaño
- 24. Descarga un archivo cambiando window.location w/Safari
- 25. <img src> w/timeout?
- 26. Vaya a un elemento particular w/jQuery
- 27. C++ derive pure abstract w/estructura anidada
- 28. C++ Web Framework w/Embedded Server?
- 29. Ruby Regex problema text.gsub [^ \ W-], '') falla
- 30. Intellij Ctrl + W atajo equivalente en Eclipse
"% w" es mi réplica habitual a las personas que se vuelven demasiado arrogantes con respecto a la legibilidad de Ruby. Funciona todo el tiempo. –
ahora tiene una respuesta aún mejor :-) – errata
Como nota lateral irrelevante, la URL de esta pregunta me confundió por un tiempo mientras la página se estaba cargando. –