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

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • fireflame65

    fireflame65

    27 Mart 2007
  • Klemens Torggler

    Klemens Torg

    11 Mart 2008

İLGİLİ SORU / CEVAPLAR