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

  • MrExcite96

    MrExcite96

    17 ŞUBAT 2011
  • PCDIY

    PCDIY

    16 AĞUSTOS 2013
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012