Cara yang tepat untuk menggunakan interpolasi string di Ruby adalah sebagai berikut:
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
Itulah cara saya ingin selalu menggunakannya.
Namun, saya telah memperhatikan sesuatu yang aneh dalam interpolasi string Ruby. Saya perhatikan bahwa interpolasi string berfungsi di Ruby tanpa tanda kurung kurawal sehubungan dengan variabel instan. Sebagai contoh:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
Dan mencoba hal yang sama sebagai variabel non-instance tidak berhasil.
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
Saya telah mencoba ini dengan sukses di 1.9.2 dan 1.8.7.
Mengapa ini berhasil? Apa yang dilakukan penerjemah di sini?