7.4. Kontrola a zjišťování typů

7.4.1. Duck typing

Potřebuji-li se zeptat zda je objekt instance konkrétního typu použiji metodu Object::instance_of?.

# $Id: typecheck.ses,v 1.1 2003/11/19 23:54:35 radek Exp $
s = "ahoj"
"ahoj"
s.instance_of? String
true
s.instance_of? Object
false
s.instance_of? Integer
false

Není-li můj dotaz takto konkrétní, ale potřebuji jen prostě znát typ objektu zeptám se přímo metodou Object::type jenž mi vrátí typ objktu jako

# $Id: type.ses,v 1.1 2003/11/19 23:54:35 radek Exp $
s = "ahoj"
"ahoj"
s.type
(irb):2: warning: Object#type is deprecated; use Object#class
String
1.type
(irb):3: warning: Object#type is deprecated; use Object#class
Fixnum
1.1.type
(irb):4: warning: Object#type is deprecated; use Object#class
Float

Jak je na ukázce vidět, je v novějších verzích ruby užití metody Object::type zavrženo a doporučuje se nahradit voláním metodoy Object::class

# $Id: object-class.ses,v 1.1 2003/11/30 12:32:45 radek Exp $
s = "ahoj"
"ahoj"
s.class
String
1.class
Fixnum
1.1.class
Float
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .