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

  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • oHeymarvin

    oHeymarvin

    11 Temmuz 2013
  • pucksz

    pucksz

    24 Mart 2006

İLGİLİ SORU / CEVAPLAR