Neden dize aradeğerleme ayraç var hiçbir zaman Ruby çalışır?
Ruby'de string aradeğerleme kullanmak için doğru yolu aşağıdaki gibidir:
name = "Ned Stark"
puts "Hello there, #{name}" #=> "Hello there, Ned Stark"
O her zaman onu kullanmayı istiyorum.
Ancak bir şey fark ettimgaripRuby'nin string aradeğerleme. Kıvırcık parantez içinde örnek değişkenleri açısından olmadan dize aradeğerleme Ruby çalıştığını fark ettim. Örneğin:
@name = "Ned Stark"
puts "Hello there, #@name" #=> "Hello there, Ned Stark"
Ve olmayan örnek bir değişken olarak aynı şeyi denemeye çalışmıyor.
name = "Ned Stark"
puts "Hello, there, #name" #=> "Hello there, #name"
Hem 1.9.2 ve 1.8.7 başarı ile denedim.
Neden bu işe yarıyor mu? Yorumlayıcı burada ne işi var?
CEVAP
GöreRuby Programlama Dilitarafından Flanagan ve Matsumoto:
Bu dize içine aralıklı olmak ifadesi sadece global, örnek veya bir sınıf değişkeni için bir başvuru olduğunda, kıvırcık parantezler ihmal olabilir.
Aşağıdaki çalışması gerekir:
@var = "Hi"
puts "#@var there!" #=> "Hi there!"
@@var = "Hi"
puts "#@@var there!" #=> "Hi there!"
$var = "Hi"
puts "#$var there!" #=> "Hi there!"

Neden yapar .() Olabilirdi boÅŸ bir diz...
Neden hiçbir Char yoktur.Boş bir Dize ...
Neden kürek operatörü (&;< lt;) ruby...
Neden hiçbir Dize yoktur.Java boş?...
Ne zaman bölme boş bir dize Python, ne...