1 / 13

Ruby

Universidad de Tarapacá Fundamentos Lenguaje y Programación. Ruby. Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales. Variables. En RUBY tenemos cuatro niveles de ámbito de variables: Variables global ($): $global, $1, $contador Variables constante (A-Z)

conroy
Download Presentation

Ruby

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universidad de Tarapacá Fundamentos Lenguaje y Programación Ruby Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales

  2. Variables En RUBY tenemos cuatro niveles de ámbito de variables: • Variables global ($): $global, $1, $contador • Variablesconstante(A-Z) • Variables instancia (@): : @nombre, @maximo, @hora_comer • Variables local ([a-z] ó _ ) : objeto, llave_maestraSímbolos: :nombre, :edad, :Clase • En RUBY no existen Tipos Primitivos  “todo en un objeto” • Pero existen Tipos Básicos  NumericFixnumRegExInteger Symbol • StringArrayRangeFloat Hash

  3. Enlaces de tipo a Variable y tiempo de vida -Métodos singleton. -Enlace Dinamico. -Mixins. Tiempo de vida de: - Variable Global comienza con $. -Variables de Instancias -Variable Local

  4. Asignaciones #Toda asignación devuelve su valor a = 4 # 4 # Las asignaciones se pueden usar en cadena a = b = 4 # 4 a + b #8 # y usados en un test fichero = File.open('../tutor.txt') # #<File:../tutor.txt> cont_linea = 0 # 0 cont_linea += 1 while (line = line.gets) # nil

  5. # Atajos a += 2 # 6 a = a+2 # 8 # Asignación en paralelo a, b = b, a # [4, 8] # Dividiendo arrays array = [1, 2] # [1, 2] a, b = *array # [1, 2]

  6. Métodos Entonces, que es un método ? Un método es lo que nos permite manipular un objeto. En la programación OO no se piensa en operar sobre los datos directamente desde el exterior de un objeto; si no que los objetos tienen algún conocimiento de cómo se debe operar sobre ellos Las tareas que podemos pedir que un objeto realice  son los métodos. Un bloque de instrucciones que define un método, empieza por la palabra def y acaba por la end. Los parámetros son la lista de variables que van entre paréntesis. Aunque en Ruby, dichos paréntesis son opcionales

  7. Subrutinas • Ruby los métodos son Subrutinas asociadas a clases o objetos, como por ejemplo el método “to_s” usado al final de la entrada. • Si los objetos (como las cadenas, números enteros y números decimales) son los sujetos en el lenguaje de Ruby, los métodos son los verbos. Cada método necesita un objeto.

  8. Subrutinas • El resultado de llamar a un método se conoce como valor de retorno: el valor de retorno de cualquier método es el valor de la última expresión evaluada durante la ejecución del método. • Rubytiene una forma de hacerlo explícito: return. El uso de esta palabra clave es opcional: • En Ruby ´´todo´´ es dinámico, de forma que no hay chequeo de tipos en el paso de parámetros. Esto es ducktyping.

  9. Subrutinas • En Ruby, confiamos menos en el tipo (o clase) de un objeto y más en sus capacidades. Entonces, DuckTyping significa que el tipo de un objeto está definido por lo que puede hacer, no por lo que es. DuckTyping se refiere a la tendencia de Ruby de preocuparse menos por la clase de un objeto y más por los métodos que pueden ser llamados por el y las operaciones que se pueden realizar con en el. En Ruby utilizaríamos el método respond_to? o simplemente pasamos un objeto a un método y sabemos que se generará una excepción si se utiliza inapropiadamente.

  10. Manejo de excepciones • ¿Qué es el manejo de excepciones en un lenguaje? • El manejo de excepciones es una estructura de control de los lenguajes de programación diseñada para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se desarrolla. • En Ruby una excepción es un tipo especial de objeto de la clase EXCEPTION. Lanzar una excepción significa para la ejecución de un programa salir del mismo y tratar con el problema que se ha producido. Para tratar el problema hace falta RAISE; de no ser así, el programa termina y avisa del error. Lo que hará RAISE (lanzar) una excepción para manejar el error. Ruby tiene una serie de clases, Exception y sus hijas, que ayudan a manejar los errores que pueden ocurrir. • Para tratar una excepción, se pone el método que puede causar el error dentro de un bloque begin…end. • Dentro de este bloque, se pueden poner varios rescue para cada tipo de error que pueda surgir:

  11. def raise_and_rescue begin puts 'Estoy antes del raise' raise 'Un error ha ocurrido' # simulamos un error puts 'Estoy después del raise' rescue puts 'Estoy rescatado del error.' end puts 'Estoy después del bloque' end raise_and_rescue #La salida es: Estoy antes del raise Estoy rescatado del error. Estoy después del bloque El código interrumpido por la excepción, nunca se ejecuta. Una vez que la excepción es manejada (por el rescue), la ejecución continúa inmediatamente después del bloque begin fuente del error.

  12. Tipos de datos Ruby es un lenguaje completamente orientado a objetos. En rubylos objetos son los agentes, el universo de tu programa: se presta atención a la estructura de los datos. Cuando se diseña una clase, se piensa en los objetos que serán creados por esa clase: en las cosas que podrá hacer ese objeto, y las características que lo definen. Un objeto es un contenedor de datos, que a su vez controla el acceso a dichos datos. Asociados a los objetos está una serie de variables que lo definen: sus atributos. Y también un conjunto de funciones que crean un interfaz para interactuar con el objeto: son los métodos. Una clase es usada para construir un objeto. Una clase es como un molde para objetos. Y un objeto, una instancia de la clase.

  13. Constructores literales: Significa que se puede usar una notación especial, en vez de usar new para crear un nuevo objeto de esa clase. Las clases que un constructor literal puede crear, están en la siguiente tabla: cada vez que usas uno de estos constructores, creas un nuevo objeto.

More Related