SORU
24 HAZİRAN 2012, Pazar


to_s vs to_str (ve to_i/to_a//to_ary/to_hash vs to_int to_h) Ruby

Öğreniyorum, Ruby ve gördüm bir kaç yöntem vardır kafa karıştırıcı biraz, özellikle to_s vs to_str (ve benzer şekilde, to_i/to_int, to_a/to_ary, & to_h/to_hash). Okudum ne kadar kısa formu (*8 örneğin*) uzun form örtülü dönüşüm için yaparken açıkça dönüştürmeleri için olduğunu açıklar.

Gerçekten to_str aslında kullanılacak anlamıyorum. Bir Dize dışında hiç to_str tanımlardı? Bu yöntem için pratik bir uygulama verebilir misiniz?

CEVAP
24 HAZİRAN 2012, Pazar


Not ilk hepsi bu geçerlidir her çifti “kısa” (örneğin to_s/to_i/to_a/to_h) vs “uzun” (örneğin to_str/to_int/to_ary/to_hash) zorlama yöntemleri Yakut (kendi türleri) gibi hepsi aynı semantiği.


Farklı anlamları var. Senin de bir itirazın yoksa to_str uygulamak değilgörürbir dize gibi, yerinegösterilebilirbir dize gibi. to_str uygulayan tek çekirdek sınıf Dizesi kendisi.

DanProgramlama Ruby(tüm okunmaya değer this blog post) alıntı:

[to_i to_s] özellikle katı: eğer bir nesnenin bir çeşit terbiyeli temsili olarak bir dize, örneğin, muhtemelen bir to_s yöntem... [to_int to_str] katı dönüşüm fonksiyonlar uygulamak onları yalnızca [] nesne olabilir doğal olarak kullanılan her yerde bir dize veya tamsayı olabilir kullanılır.

Older Ruby documentation from the Pickaxe bunu söylemek için:

Neredeyse tüm sınıfları tarafından desteklenen to_s,, to_str normalde dizeleri gibi hareket eden bu sınıflar tarafından yürütülmektedir aksine.

Örneğin, ek olarak Integer, hem Float & Numeric uygulamak to_int (to_i'In eşdeğer to_str) çünkü ikisini de kolaylıkla yerine bir Tamsayı (hepsi aslında sayı). Sınıfınızın Dize ile aynı şekilde sıkı bir ilişki olmadıkça, to_str uygulamak değil.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Modus Recordings

    Modus Record

    26 Kasım 2008
  • pilslajt

    pilslajt

    20 HAZİRAN 2008
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009