SORU
2 NİSAN 2013, Salı


ruby'de bir nesnenin türünü belirlemek

Arıyorum ne bir örnek (eğer python biliyor musun diye psuedocode olarak düşünebilirsiniz) olarak python kullanacağım:

>>> a = 1
>>> type(a)
<type 'int'>

Ruby yapabileceğimi biliyorum :

1.9.3p194 :002 > 1.class
 => Fixnum 

Ama bu doğru yolu nesne türünü belirlemek için.

CEVAP
2 NİSAN 2013, Salı


Belirlemek için uygun şekilde "tip" Ruby dünyanın titrek bir terim olan bir nesne, arama object.class.

Beri sınıfları aktarmak için diğer sınıfları, eğer istediğiniz olup olmadığını belirlemek için bir nesnedir "tip" diye çağrı object.is_a?(ClassName) görmek object tipi ClassName veya türevi.

Normalde bir tür denetleme Ruby yapılır, ancak bunun yerine, nesneleri belirli yöntemler karşılık yeteneklerine göre değerlendirilir, yaygın olarak adlandırılan "Duck typing". Eğer istediğiniz yöntemleri için yanıt verirse, diğer bir deyişle, bu tür hakkında belirli olması için bir sebep yok.

Örnek çok katı olduğu için. object.respond_to?(:to_s) yayarlar veya bir dize dönüştürülebilir herhangi bir nesne kullanımına izin vermesi gibi daha iyi olurdu.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • snookie77

    snookie77

    2 Mart 2006

İLGİLİ SORU / CEVAPLAR