Ho uno script Ruby che utilizza l'interpolazione stringa per creare messaggi di errore.Interpolazione stringa quando non si utilizza una stringa letterale
p "#{vName} is not a defined variable" => 'xxx is not a defined variable'
Un altro programmatore è arrivato e ha tentato di esternalizzare i valori letterali delle stringhe in un file di configurazione separato. Certo, non ottiene la sostituzione.
p err_string_from_config => '#{vName} is not a defined variable'
Ho guardato intorno, ma non poteva venire in mente nulla di meglio che la conversione in sprintf stringhe e l'utilizzo di printf.
Qualcuno sa come ottenere la sostituzione # {} per lavorare su stringhe che non sono letterali con doppia virgoletta all'interno dello script Ruby?
Whoops! Sono corretto. Toglierò la mia risposta. –
Sì, speravo di trovare un modo per non coinvolgerlo nella modifica delle stringhe. Non è un grosso problema, ma dopo averlo chiesto, ho dovuto vedere se c'era un modo per far funzionare la sostituzione # {} senza che fosse in una stringa letterale. Sembrava che dovesse esserci un modo. –
@John: Nessun problema se avessi un dollaro per ogni piccolo errore ... (In realtà non sapevo che Python lo facesse);) @Mike: Ho aggiornato la mia risposta con informazioni su come farlo usando # {{ } interpolazione di stile. –