Ho trovato questo blocco di codice su Wikipedia come un esempio di un quine (programma che si stampa da solo) in Ruby.Capire il rubino quine
puts <<2*2,2
puts <<2*2,2
2
Tuttavia, non capisco come funziona. In particolare, quello che non capisco è che quando tolgo l'ultima riga, ottengo questo errore:
syntax error, unexpected $end, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
Cosa succede in quelle righe?
Ma se il marcatore finale della stringa è il "qualcosa" dopo "< <', allora non dovrebbe essere la sequenza' 2 * 2,2' allora, e la stessa sequenza usata nell'ultima riga per terminarla? – SasQ
La precedenza di '<<' è più stretta di '*', quindi '<< 2 * 2' è" la stringa rappresentata dal seguente documento qui terminato 2, moltiplicato per 2 "piuttosto che" la stringa rappresentata dal seguente Documento qui 2 * 2-terminato. " –