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

  • habpsu

    habpsu

    25 Temmuz 2007
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013
  • Tina Chen

    Tina Chen

    26 Mayıs 2012