Detodo Un Poco
Introducción
• Ruby es un lenguaje interpretado, orientado a objetos creado por Yukihiro Matsumoto (Matz), 1995. • Última versión estable 1.9.1, 11/02/2009. • Todos los tipos de datos son un objeto, incluidas las clases, tipos primitivos.
© GSyC 2009
2
Los comentarios comienzan por "#" Otra forma: =begin código comentado =end
Primer programa
# Programa en rubyputs'Hola Ruby' x=1 puts(x)
Cada instrucción se escribe en una línea diferente, no es necesario ";"
No es necesario declarar variables antes de usarlas. Declaración implícita de variables.
No se define "main" o bloque principal
El resultado de ejecutar este programa es: hola Ruby 1
© GSyC 2009
Se pueden omitir los paréntesis en las llamadas a funciones, si no hay ambigüedad
3Primer programa
Declaración de una función
Invocación de la función hola
# Programa en ruby def hola(nombre) puts "hola #{nombre}" end hola('Ruby') x=1 puts(x)
El resultado de ejecutar este programa es: hola Ruby 1
© GSyC 2009
La comilla simple y las dobles comillas tienen significado diferente
Sustitución de la variable
4
Ejecución de un programa en Ruby
• Ejecutar rubycargando el fichero del programa.
~> ruby -w
• Ejecutar el intérprete interactivo (irb) e introducir sentencias por la entrada estándar.
~> irb >> 2+2 => 4
Prompt de irb
Muestra el valor de retorno de cada sentencia
• Ejecutar un script de ruby
~> ./miPrograma.rb
© GSyC 2009
5
Script de Ruby
• Un script de ruby debe comenzar con una primera línea que indique dónde se encuentra elintérprete de ruby:
#!/usr/bin/ruby -w #Programa en ruby def hola(nombre) puts "hola #{nombre}" end hola('Ruby') Fichero miPrograma.rb
• El fichero debe ser ejecutable. • No es muy portable ya que depende del directorio donde se haya instalado ruby.
© GSyC 2009
6
Ayuda ri
• Referencia interactiva: herramienta que muestra descripciones de los métodos, clases y módulos predefinidos enRuby.
~> ri String.capitalize ------------------------------------------------------ String#capitalize str.capitalize => new_str -----------------------------------------------------------------------Returns a copy of _str_ with the first character converted to uppercase and the remainder to lowercase. "hello".capitalize "HELLO".capitalize "123ABC".capitalize #=> "Hello" #=> "Hello" #=> "123abc"© GSyC 2009
7
Valor de retorno de una función
• El valor de retorno de una función es el valor de la última expresión ejecutada. • Los siguientes ejemplos son equivalentes:
def saludo(nombre) res = "Buenos días, #{nombre}" return res end puts saludo('Alicia') def saludo(nombre) "Buenos días, #{nombre}" end
puts saludo('Alicia')
© GSyC 2009
8
Asignaciones especiales
• En Rubycasi cualquier cosa devuelve un valor. Así, pueden encadenarse asignaciones:
a = b = c = 4;
• Asignación paralela:
a, b = b, a # intercambia a y b
• Existen las asignaciones con atajos de C:
a += 2 # incrementa a en 2
© GSyC 2009
(no existen los operadores ++ y --)
9
Identificadores
• Variables locales, nombres de métodos y parámetros de métodos comienzan por letra minúscula opor _:
– lista, n_maximo, num
• Variables globales comienzan por $:
– $count, $1
• Variables de instancia comienzan por @:
– @nombre, @edad, @n_dni
• Variables de clase comienzan por @@:
– @@instancia, @@tabla
• Nombres de clases, módulos y constantes comienzan por letra mayúscula:
– MiClase, String, Fixnum, – MAX_NUM, MIN_NUM
© GSyC 2009
10
Ejercicio
• Ej1: Realiza unprograma en Ruby que defina una función cuyo valor de retorno sea una cadena de caracteres similar a:
– El producto de x por y es z
Donde x e y pueden ser valores cualesquiera que se le pasan a la función como parámetros y z=x*y. El programa calculará el producto de los números 5 y 6 e imprimirá la cadena de caracteres: "El producto de 5 por 6 es 30"
© GSyC 2009
11
Arrays
•...
Regístrate para leer el documento completo.