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

  • Edgar flores

    Edgar flores

    7 HAZİRAN 2006
  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006