[Ruby] Diferença entre ' e "

Olá, estava lendo o livro de Ruby do Lucas Souza e achei muito bom.

Porém, não consegui entender direito a diferença entre aspas simples ' e aspas duplas " em ruby.

Alguém consegue me ajudar?

Oi @jean.pontes, que legal que gostou do livro.

Nas strings declaradas com aspas simples você não consegue fazer interpolação, que é aquela forma de fazer uma espécie de concatenação, mas mais elegante. Por exemplo:

nome_completo = "Adriano #{sobrenome} de Almeida"

com as aspas simples você teria que fazer as clássicas concatenações com +.

1 curtida

@jean.pontes
Completando o que disse o @adrianoalmeida7,

A gente sempre tenta usar aspas simples ( ’ ). Porém quando houver uma variável junto à string, o Ruby vai precisar fazer interpolação e portanto você vai precisar de aspas duplas ( " ).

Ex.:

erro = 'Falha ao criar usuário'
mensagem = 'Usuário criado com sucesso'
nome_usuario = current_user.first_name
bem_vindo = "Bem vindo, ${nome_usuario}"

Resumindo: sempre tente optar por ', mas caso precise, use "

@lucasarruda
A gente sempre tenta usar aspas simples ( ’ ) (…)

Lucas, e por que devemos sempre optar pelas aspas simples? Tem alguma diferença de uso de memória ou velocidade de processamento?

@marcosalles
É um boa prática, porque o Ruby sabe que não precisará fazer interpolação e vai tratar somente como string.
Provavelmente vai ser bem mais rápido também (se você considerar isso 100 vezes no código).

Sempre tente simplificar as coisas quanto tiver programando porque sempre otimiza.

Essa otimização acontece porque, no geral, aplicações em ruby são interpretadas e não compiladas, certo? No caso de se utilizar um compilador como o Rubinius, não faria realmente diferença.

Olá!

Uma questão interessante também é quando se deseja colocar aspas dentro de aspas sem precisar de escape ( \ ).

Por exemplo:

puts 'Hello "World"'
retorna Hello "World"

puts "Hello 'World'"
retorna Hello 'World'