Tengo un script de Ruby que utiliza la interpolación de cadenas para generar mensajes de error.Interpolación de cadenas cuando no se utiliza una cadena literal
p "#{vName} is not a defined variable" => 'xxx is not a defined variable'
Otro programador apareció e intentó externalizar los literales de cadena a un archivo de configuración separado. Por supuesto, él no obtiene la sustitución.
p err_string_from_config => '#{vName} is not a defined variable'
He mirado alrededor, pero no pudo llegar a nada mejor que la conversión a sprintf cuerdas y el uso de printf.
¿Alguien sabe cómo hacer que la sustitución # {} funcione en cadenas que no son literales de comillas dobles en el script de Ruby?
¡Vaya! Estoy corregido. Eliminaré mi respuesta. –
Sí, esperaba encontrar una manera que no lo involucrara modificando las cuerdas. No es gran cosa, pero después de que me preguntó por él, tenía que ver si había una forma de hacer que la sustitución # {} funcionara sin estar en una cadena literal. Parecía que debería haber una manera. –
@John: No hay problema si tengo un dólar por cada pequeño error ... (En realidad no sabía que Python hizo esto tampoco);) @Mike: Actualicé mi respuesta con información sobre cómo hacer esto usando # { } estilo de interpolación –