2011-04-07 2 views
2

Je suis tombé sur cela quelques fois, mais je ne l'ai jamais vraiment compris. Quelqu'un peut-il m'expliquer comment cette syntaxe crée une chaîne?Une façon différente de créer des cordes de rubis

STRING = <<-EOS 
This is a string!! 
EOS 

puts STRING 
=> "This is a string!!" 

Comme d'abord je pensais qu'il y avait quelque chose de spécial au sujet de la <<-EOS, mais il semble en fait de travailler avec un omble chevalier. <<x par exemple fonctionne également

Quelqu'un peut-il m'expliquer ce que signifie exactement cette syntaxe? Et comment est-ce qu'une chaîne est créée?

Répondre

0

C'est ce qu'on appelle un document Here. S'il vous plaît voir le doc here pour une meilleure explication en utilisant "Strings"

+1

thx pour le lien doc! – brad

+7

Pourriez-vous écrire plus d'explications que "S'il vous plaît voir le doc ici". – rudolph9

8

Cela s'appelle un heredoc, et cette fonctionnalité est intégrée dans l'analyseur.

Vous pouvez changer le EOS en n'importe quelle chaîne que vous voulez. La raison en est que si vous devez mettre le mot EOS (ou un guillemet) dans votre chaîne pour une raison quelconque, vous pouvez choisir un signal pratique pour la fin de la chaîne qui n'apparaît pas dans la chaîne, donc vous n'avez pas à échapper à quoi que ce soit dans la chaîne.

+0

Pour étendre ce que Ken a dit, heredocs sont utilisés dans un grand nombre de langages, y compris shell et Perl. Ils peuvent être très puissants en tant que modèles car vous pouvez y incorporer des variables, similaires aux chaînes normales, ce qui facilite la création rapide de texte formaté. –

+0

thx, bonne explication! Lien vers les docs de Kurumi expliqué tout pour moi – brad

Questions connexes