Nie rozumiem, dlaczego eval
działa tak:Ruby: eval z interpolacją strun
"123 #{456.to_s} 789" # => "123 456 789"
eval('123 #{456.to_s} 789') # => 123
Jak można interpolować w ciąg wewnątrz eval
?
Aktualizacja:
Dziękuję, przyjaciele. Zadziałało.
Więc jeśli masz zmienną string z #{}
który chcesz eval później, należy zrobić to jak poniżej:
string = '123 #{456} 789'
eval("\"" + string + "\"")
# => 123 456 789
lub
string = '123 #{456} 789'
eval('"' + string + '"')
# => 123 456 789
Co masz na myśli przez "substytucje makro"? – sawa
@sawa, miałem na myśli sekcje '# {}', edytuj je we właściwy sposób, po prostu nie wiem jak to powiedzieć po angielsku –
Dobra, może chodziło ci o interpolację. – sawa