Правильний спосіб використання інтерполяції рядків у Ruby такий:
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
Саме таким способом я маю намір його завжди використовувати.
Однак я помітив щось дивне в інтерполяції рядків Рубі. Я помітив, що інтерполяція рядків працює в Ruby без фігурних дужок щодо змінних екземпляра. Наприклад:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
І те, що пробувати те саме, що і інстанція змінної, не працює.
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
Я спробував це з успіхом як в 1.9.2, так і в 1.8.7.
Чому це працює? Що тут робить перекладач?