Type

Type permite inspeccionar, verificar y comparar tipos de datos.

Obtener tipo de dato#

MétodoDescripción
type(value)Devuelve el identificador numérico del tipo
type.name(value)Devuelve el nombre del tipo como cadena
# Identificadores numéricos
print type(42)
print type("hola")
print type(true)

# Nombre del tipo
print type.name(42)      # "int"
print type.name("hola")  # "string"
print type.name(true)    # "bool"

Identificadores de tipo#

ConstanteDescripción
type.intIdentificador de tipo entero
type.floatIdentificador de tipo decimal
type.strIdentificador de tipo cadena
type.boolIdentificador de tipo booleano
type.arrayIdentificador de tipo arreglo
type.objectIdentificador de tipo objeto
type.functionIdentificador de tipo función
type.noneIdentificador de tipo nulo
type.bigintIdentificador de tipo entero grande
valor = 42
tipo = type(valor)

if tipo == type.int
    print "Es un entero"
elif tipo == type.str
    print "Es una cadena"
else
    print "Otro tipo"
Usando cadenas

También puedes usar cadenas para comparar tipos. Aunque puede parecer menos eficiente, la realidad es que DinoCode solo devuelve constantes ya definidas (mismo rendimiento que comparar números).

valor = 42
tipo = type.name(valor)

if tipo == "int"
    print "Es un entero"
elif tipo == "str"
    print "Es una cadena"
else
    print "Otro tipo"

Verificación de tipos#

MétodoDescripción
type.is_primitive(value)Verifica si el valor es un tipo primitivo

Tipos primitivos#

Los tipos primitivos incluyen: int, float, bool, string, bigint, y none.

numero = 42
lista = [1 2 3]

if type.is_primitive(numero)
    print "Es un tipo primitivo"

if not type.is_primitive(lista)
    print "No es un tipo primitivo"

Verificación de instancias#

MétodoDescripción
type.instance_of(instance, class)Verifica si un objeto es instancia de una clase

Comprobar instancia#

::Animal Object
    :new nombre
        self.nombre = nombre

    :emitir_sonido
        print "GRRRRR..."

::Gato Animal
    :emitir_sonido
        print "Miau! Miau!"

mascota = Gato("Kala")
if type.instance_of(mascota Gato)
    print "Es un gato"
if type.instance_of(mascota Animal)
    print "Es un animal"
if type.instance_of(mascota Object)
    print "Es un objeto"
Herencia

instance_of sigue la cadena de prototipos, por lo que un objeto de una clase derivada también es instancia de sus clases base.