SORU
1 Ocak 2011, CUMARTESİ


Neden iyi bir fikir için dinamik olarak ruby semboller bir sürü oluşturmak değil mi?

Ruby sembolün fonksiyonu nedir? dize ve Sembol arasındaki fark nedir? Neden iyi bir fikir dinamik semboller bir sürü oluşturmak değil mi?

CEVAP
1 Ocak 2011, CUMARTESİ


Semboller dizeleri gibi ama değişmez onlar değiştirilebilir değil.

Sadece belleğe sonra onları sağlamalarının anahtarlar gibi şeyler için kullanmak çok verimli hale gelirler ama program çıkar kadar bellekte kalırlar. Bu onlara yanlış onlara, eğer bir bellek domuz yapar.

Sen semboller çok dinamik olarak oluşturmak, program bitene kadar serbest olamaz, çok miktarda bellek ayırma. Sadece dinamik olarak eğer biliyorsanız semboller (string.to_sym) kullanarak oluşturmanız gerekir:

  1. defalarca sembolü erişim için gerekli
  2. onları değiştirmek gerekir

Daha önce de söylediğim gibi, hakkında daha fazla tercih ettiğin bir yer sağlamalarının gibi şeyler için yararlıdırkimlikdeğerini daha değişken. Semboller, doğru kullanıldığında, okunabilir ve verimli kimlik geçirmek için bir yoldur.

Sembollerin değişmezliğini tanıdı RE yorumlarınız ne demek istediğimi açıklayacağım.

Dizeleri diziler gibi; yerde değiştirilebilir:

12:17:44 ~$ irb
irb(main):001:0> string = "Hello World!"
=> "Hello World!"
irb(main):002:0> string[5] = 'z'
=> "z"
irb(main):003:0> string
=> "HellozWorld!"
irb(main):004:0> 

Semboller daha fazla gibi numaraları; yerde düzenlenmiş olamaz:

irb(main):011:0> symbol = :Hello_World
=> :Hello_World
irb(main):012:0> symbol[5] = 'z'
NoMethodError: undefined method `[]=' for :Hello_World:Symbol
    from (irb):12
    from :0

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Best Quality Cartoons

    Best Quality

    10 ŞUBAT 2014
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006