SORU
13 Ocak 2011, PERŞEMBE


Neden kürek operatörü (&;< lt;) ruby'de bir dize oluştururken artı bir eşittir ( =) tercih?

Ruby Koanları ile çalışıyorum.

test_the_shovel_operator_modifies_the_original_string Öyküsündeabout_strings.rbaşağıdaki yorum içerir:

Ruby programcıları kürek operatörü lehine eğilimindedir (&;< lt;) artı dizeleri geliştirirken operatörü ( =) eşittir. Neden?

Benim tahminim hız gerektirir, ama kürek operatörü daha hızlı olması neden olabilecek başlık altında eylem anlamıyorum.

Biri bu tercihi arkasındaki bilgi lütfen açıklayabilir ki?

CEVAP
13 Ocak 2011, PERŞEMBE


Kanıt:

a = 'foo'
a.object_id #=> 2154889340
a << 'bar'
a.object_id #=> 2154889340
a  = 'quux'
a.object_id #=> 2154742560

<< yeni bir tane oluşturmak yerine özgün dize değiştirir. Bunun nedeni, ruby a = b atama a = a b (aynı <op>= diğer operatörler için de geçerli) için sözdizimsel steno olmasıdır. Diğer yandan << alıcı-yer değiştiren concat() Bir diğer adıdır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • Rootjunky.com

    Rootjunky.co

    22 EKİM 2011
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006

İLGİLİ SORU / CEVAPLAR