Double vs guillemets simples
Je suis vraiment nouveau à Ruby et j'essaie de comprendre si il y a un temps spécifique alors que je devrais utiliser ""
vs ''
.
J'ai été en utilisant des guillemets simples, la plupart du temps parce que c'est plus facile à taper, mais je ne suis pas sûr si je devrais.
par exemple get 'user/new'
vs get "user/new"
- Êtes-vous sûr que c'est un RoR question, et pas seulement un Rubis question?
- Est-il pertinent style guide sur le choix de la chaîne d'interpolation n'est pas nécessaire?
Vous devez vous connecter pour publier un commentaire.
" "
vous permet de faire de la chaîne d'interpolation, par exemple:à l'exception de l'interpolation, une autre différence est que la "séquence d'échappement" ne fonctionne pas dans l'apostrophe
'don\'t'
.puts '\\'
Il sera seulement d'imprimer une seule barre oblique. voir ici stackoverflow.com/questions/25499046/...\'
et `\`), non pas qu'il n'y a pas plus de différences entre les guillemets simples et doubles, en tout cas, la différence de performances est vraiment insignifiant stackoverflow.com/a/1837604/1802527Pour répondre à votre question, vous devez utiliser
""
lorsque vous voulez faire de la chaîne d'interpolation:Utiliser de simples citations autrement.
Aussi, si vous vous demandez si il y a une différence en termes de performances, il est un excellent question à ce sujet sur StackOverflow.
Et si vous êtes vraiment nouveau à RoR, je vous invite à prendre un décent Ruby livre pour apprendre les bases de la langue. Il vous aidera à comprendre ce que vous faites (et de vous garder de penser que Rails est de la magie). Personnellement, je recommande Le Bien fondé Rubyist.
Il y a une différence entre un seul
''
et des guillemets""
en Ruby, en termes de ce qui arrive à être évalué à une chaîne.D'abord, je tiens à préciser que dans le littéral forme d'une chaîne tout ce qui est entre unique ou double citations obtient évalué comme un objet de type string, qui est une instance de la Ruby classe String.
Par conséquent,
'stackoverflow'
et"stackoverflow"
les deux évaluera les instances de la classe String avec aucune différence.La différence
La différence essentielle entre les deux littérale formes de chaînes de caractères (entre guillemets simples ou doubles) est que les guillemets permettent de séquences d'échappement, tandis que les guillemets simples ne le sont pas!
Un littéral de chaîne créée par des guillemets simples ne prend pas en charge chaîne interpollation et ne pas les séquences d'échappement.
Un exemple clair est:
alors que
Interpolation avec des guillemets simples ne fonctionne pas du tout:
Meilleures pratiques
Comme la plupart des Rubis Linters de suggérer utilisez l'apostrophe littéraux pour vos chaînes et aller pour le double dans le cas de l'interpolation/s'échapper séquences.
Échapper exemple de code:
D'Interpolation exemple:
Similaire à la réponse "\n" dans l'impression, la suite est un autre cas de la différence
regarde donc comme * a convertir à caractère d'échappement dans les guillemets, mais pas dans des guillemets simples.
BTW, il aura une incidence sur la sortie lors de l'utilisation de l'expression régulière
par exemple,
str.gsub(/expression régulière/, '\1,\2')
Dans ce cas précis, il ne fait aucune différence comment vous l'écrivez. Ils sont équivalents. Aussi, vous pouvez lire un peu plus Ruby guides/tutoriels 🙂