tamaƱo rails manipulation len array ruby arrays

rails - ruby array methods



Arrays de Ruby:% w vs% W (6)

¿Cuál es la diferencia?


% W realiza sustituciones de comillas dobles normales. % w no.


Aunque es una publicación anterior, la pregunta sigue apareciendo y las respuestas no siempre me resultan claras. Entonces, aquí están mis pensamientos.

% w y% W son ejemplos de tipos de entrada general delimitada, 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, tenemos 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 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



Una aplicación que he encontrado para% W vs% w:

greetings = %W(hi hello #{"how do you do"}) # => ["hi", "hello", "how do you do"]


% 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}"]


%W se usa para elementos de matriz de comillas dobles como %Q , por ejemplo,

foo = "!" %W{hello world #{foo}} # => ["hello", "world", "!"]

%w se usa para elementos de matriz de una sola cita como %q .

%w(hello world #{foo}) # => ["hello","world", "/#{foo}"]