viernes, 9 de agosto de 2013

Conceptos Básicos VIII : Module y is_a?

 Aprenderemos 2 conceptos bastantes interesantes, el module y el condicional is_a? , que son un poco extras en los scripts que ya estan en el maker, pero necesarios para que nosotros podamos hacer uno.

---------------------------------- MODULE -------------------------------------------

 Para los que saben programar, el module es como una estructura, permite almacenar datos constantes y tambien poner métodos dentro de él, hay que entender y es muy importante, es que los modulos siempre estan activados, sea cual sea su posicion en los scripts.

 para entender bien como usar un module loa veremos con un ejemplo:

module Hola
 
  Boolean = true
  Numero = 45
 
end

def nombre()
    msgbox("anita lava la tina :DD ") if Hola::Boolean == true
    msgbox("numero por aca :)) ")    if Hola::Numero != 0
nombre()

basicamente se crea el modulo como aparece y siempre deben ir con mayusculas las iniciales... para llamarlos desde algun metodo se pone con el nombre del modulo, 2 dos puntos, y luego la constante.

 Para llamar metodos del modulos desde otros metodos, simplemente se escribe el modulo que se busca, punto, y luego el metodo dentro del modulo, ejemplo:

module Llamando
  def self.Script_one
    msgbox("lol")
  end
end

def Llamar()
  Llamando.Script_one
end
Llamar()

 olvide algo importanticimo, que es que todos lo metodos dentro del modulo DEBEN llevar " self. " antes del nombre del metodo, o sino tirará error

--------------------------------- CONDICIONAL IS_A? ------------------------------

El condicional is_a?, verifica si lo que tiene a su lado izquierdo es igual a lo que se encuentra entre parentesis
por ejemplo:

module Llamando
 
  Numero = 13
  Letra  = "a"
  Decimal= 3.14
 
  def self.Script_one
    msgbox("lol")
  end

end

def Llamar()
  msgbox("numero") if Llamando::Numero.is_a?(Integer) # integer = entero
  msgbox("letra")      if Llamando::Letra.is_a?(String)      # String = letras
  msgbox("decimal") if Llamando::Decimal.is_a?(Float)   # Float = decimal
  Llamando.Script_one
end
Llamar()

siempre lo que se va a comparar lleva .is_a?(integer/float/string/variable/etc)


No hay comentarios:

Publicar un comentario