"% w" es mi respuesta habitual a las personas que se vuelven demasiado arrogantes sobre la legibilidad de Ruby. Funciona todo el tiempo.
Craig Stuntz
ahora tiene una respuesta aún mejor :-)
errata
66
Como nota al margen irrelevante, la URL de esta pregunta me confundió durante un tiempo mientras se cargaba la página.
Financia la demanda de Mónica el
Respuestas:
233
% w se cita como comillas simples ''(sin interpolación variable, menos secuencias de escape), mientras que% W se 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
Si. Al imprimir la salida, Ruby siempre usa comillas dobles y escapa caracteres como #. '#{foo}'y "\#{foo}"darle la misma cadena, que puede verificar con '#{foo}' == "\#{foo}"en irb.
Brian Campbell
Es un poco confuso a primera vista, pero gracias por la explicación.
Foton
29
Una aplicación que he encontrado para% W vs% w:
greetings =%W(hi hello #{"how do you do"})# => ["hi", "hello", "how do you do"]
Aunque es una publicación antigua, la pregunta sigue apareciendo y las respuestas no siempre me parecen claras. Entonces, aquí están mis pensamientos.
% w y% W son ejemplos de tipos de entrada delimitados generales , 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 comillas simples y dobles. Con comillas simples y minúsculas% w, no tenemos interpolación de código (por ejemplo, # {someCode}) y un rango limitado de caracteres de escape que funcionan (por ejemplo, \, \ n). Con comillas dobles y mayúsculas% W que sí tienen acceso a estas características.
El delimitador utilizado puede ser cualquier carácter, no solo el paréntesis abierto. Juega con los ejemplos anteriores para ver eso en efecto.
Ese es un buen artículo. No me di cuenta de que puedes hacer cadenas u otras cosas de la misma manera y los caracteres que encierran pueden ser lo que quieras. Por ejemplo,%w&readable af&
Respuestas:
% w se cita como comillas simples
''
(sin interpolación variable, menos secuencias de escape), mientras que% W se cita como comillas dobles""
.fuente
#
.'#{foo}'
y"\#{foo}"
darle la misma cadena, que puede verificar con'#{foo}' == "\#{foo}"
enirb
.Una aplicación que he encontrado para% W vs% w:
fuente
greetings = %w(hi hello how\ do\ you\ do)
% W realiza sustituciones normales de comillas dobles. % w no lo hace.
fuente
Aunque es una publicación antigua, la pregunta sigue apareciendo y las respuestas no siempre me parecen claras. Entonces, aquí están mis pensamientos.
% w y% W son ejemplos de tipos de entrada delimitados generales , 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 comillas simples y dobles. Con comillas simples y minúsculas% w, no tenemos interpolación de código (por ejemplo, # {someCode}) y un rango limitado de caracteres de escape que funcionan (por ejemplo, \, \ n). Con comillas dobles y mayúsculas% W que sí tienen acceso a estas características.
El delimitador utilizado puede ser cualquier carácter, no solo el paréntesis abierto. Juega con los ejemplos anteriores para ver eso en efecto.
Para una redacción completa con ejemplos de% w y la lista completa, caracteres de escape y delimitadores, eche un vistazo a: http://cyreath.blogspot.com/2014/05/ruby-w-vs-w-secrets-revealed .html
marca
fuente
%w&readable af&
Documentación para cadenas de porcentaje: http://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Percent+Strings
fuente
%W
se usa para elementos de matriz con comillas dobles como%Q
, por ejemplo,%w
se usa para elementos de matriz con comillas simples como%q
.fuente
Igual que
%w
es un símbolo de atajo para la comilla a la cadena!fuente