"% w" é minha resposta habitual para pessoas que ficam um pouco convencidas com a legibilidade do Ruby. Funciona sempre.
22710 Craig Stuntz
agora você tem uma resposta ainda melhor :-)
errata 23/11
6
Como uma observação lateral irrelevante, o URL desta pergunta me confundiu por um tempo enquanto a página estava carregando.
Fund Monica's Lawsuit
Respostas:
233
% w aspas como aspas simples ''(sem interpolação variável, menos seqüências de escape), enquanto% W aspas como aspas duplas "".
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}"]
Seu exemplo mostra aspas duplas para% w também. Está correto?
Foton
Sim. Ao imprimir, Ruby sempre usa aspas duplas e escapa caracteres como #. '#{foo}'e "\#{foo}"dar-lhe a mesma corda, que você pode verificar com o '#{foo}' == "\#{foo}"no irb.
Brian Campbell
É pouco confuso à primeira vista, mas obrigado pela explicação.
Foton
29
Um aplicativo que encontrei para% W vs% w:
greetings =%W(hi hello #{"how do you do"})# => ["hi", "hello", "how do you do"]
Embora seja um post antigo, a pergunta continua aparecendo e as respostas nem sempre parecem claras para mim. Então, aqui estão os meus pensamentos.
% w e% W são exemplos de tipos de entrada delimitada geral , relacionados a matrizes. Existem outros tipos que incluem% q,% Q,% r,% x e% i.
A diferença entre maiúsculas e minúsculas é que ela nos dá acesso aos recursos de aspas simples e duplas. Com aspas simples e% w minúsculas, não temos interpolação de código (por exemplo, # {someCode}) e um intervalo limitado de caracteres de escape que funcionam (por exemplo, \, \ n). Com aspas duplas e% maiúscula W que não têm acesso a esses recursos.
O delimitador usado pode ter qualquer caractere, não apenas o parêntese aberto. Brinque com os exemplos acima para ver isso em vigor.
Esse é um bom artigo. Eu não sabia que você pode criar cordas ou outras coisas da mesma maneira e os caracteres anexos podem ser o que você quiser. Por exemplo,%w&readable af&
Respostas:
% w aspas como aspas simples
''
(sem interpolação variável, menos seqüências de escape), enquanto% W aspas como aspas duplas""
.fonte
#
.'#{foo}'
e"\#{foo}"
dar-lhe a mesma corda, que você pode verificar com o'#{foo}' == "\#{foo}"
noirb
.Um aplicativo que encontrei para% W vs% w:
fonte
greetings = %w(hi hello how\ do\ you\ do)
% W executa substituições normais de aspas duplas. % w não.
fonte
Embora seja um post antigo, a pergunta continua aparecendo e as respostas nem sempre parecem claras para mim. Então, aqui estão os meus pensamentos.
% w e% W são exemplos de tipos de entrada delimitada geral , relacionados a matrizes. Existem outros tipos que incluem% q,% Q,% r,% x e% i.
A diferença entre maiúsculas e minúsculas é que ela nos dá acesso aos recursos de aspas simples e duplas. Com aspas simples e% w minúsculas, não temos interpolação de código (por exemplo, # {someCode}) e um intervalo limitado de caracteres de escape que funcionam (por exemplo, \, \ n). Com aspas duplas e% maiúscula W que não têm acesso a esses recursos.
O delimitador usado pode ter qualquer caractere, não apenas o parêntese aberto. Brinque com os exemplos acima para ver isso em vigor.
Para uma gravação completa com exemplos de% w e a lista completa, caracteres de escape e delimitadores - consulte: http://cyreath.blogspot.com/2014/05/ruby-w-vs-w-secrets-revealed .html
Marca
fonte
%w&readable af&
Documentação para sequências de porcentagem: http://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Percent+Strings
fonte
%W
é usado para elementos de matriz com aspas duplas%Q
, como , por exemplo,%w
é usado para elementos de matriz com aspas simples como%q
.fonte
Igual a
%w
é um símbolo de atalho para as aspas da string!fonte