Estou muito novo para Ruby e eu estou tentando entender se há um tempo específico quando devo usar ""
vs ''
.
Eu tenho usado aspas simples na maioria das vezes porque é mais fácil digitar, mas não tenho certeza se devo.
por exemplo, get 'user/new'
vsget "user/new"
Respostas:
" "
permite fazer interpolação de strings, por exemplo:fonte
exceto a interpolação, outra diferença é que a 'sequência de escape' não funciona entre aspas simples
fonte
'don\'t'
.puts '\\'
Ele imprimirá apenas uma barra. veja aqui stackoverflow.com/questions/25499046/…Para responder sua pergunta, você deve usar
""
quando quiser fazer uma interpolação de string:Use aspas simples caso contrário.
Além disso, se você está se perguntando se há uma diferença em termos de desempenho, há uma excelente pergunta sobre isso no StackOverflow.
E se você é realmente novo no RoR, peço que você compre um livro decente sobre Ruby para aprender o básico do idioma. Isso o ajudará a entender o que está fazendo (e evitará que você pense que o Rails é mágico). Eu pessoalmente recomendo o Rubyist bem fundamentado .
fonte
Há uma diferença entre
''
aspas simples e duplas""
no Ruby em termos do que deve ser avaliado em uma string.Inicialmente, gostaria de esclarecer que, na forma literal de uma string, qualquer coisa entre aspas simples ou duplas é avaliada como um objeto de string, que é uma instância da classe Ruby String.
Portanto,
'stackoverflow'
e"stackoverflow"
ambos avaliarão instâncias da classe String sem nenhuma diferença .A diferença
A diferença essencial entre as duas formas literais de strings (aspas simples ou duplas) é que aspas duplas permitem seqüências de escape, enquanto aspas simples não!
Um literal de cadeia criado por aspas simples não suporta interpolação de cadeia e não escapa seqüências.
Um exemplo interessante é:
enquanto que
A interpolação com aspas simples não funciona:
Melhor prática
Como a maioria dos Ruby Linters sugere usar literais de aspas simples para suas seqüências de caracteres e ir para os duplos no caso de seqüências de interpolação / escape.
fonte
Exemplo de código de escape:
Exemplo de interpolação:
fonte
Semelhante à resposta "\ n" na impressão, a seguir é outro caso da diferença
parece que * foi convertido em caractere de escape entre aspas duplas, mas não entre aspas simples. BTW, afetará a saída ao usar na expressão regular, por exemplo, str.gsub (/ expressão regular /, '\ 1, \ 2')
fonte
Outro motivo pelo qual você deseja usar aspas simples é ao passar um padrão regex como uma string:
Esse padrão de regex funcionará porque passou entre aspas simples:
Esse padrão regex falhará porque passou entre aspas duplas (você precisaria escapar duas vezes para fazê-lo funcionar):
fonte
Nesse caso específico, não faz diferença a maneira como você o escreve. Eles são equivalentes. Além disso, você pode ler mais alguns guias / tutoriais em Ruby :)
fonte