Es muy importante que visiten la pagina oficial para consultar guias, manuales, documentación, también explican como instalar en diferentes sistemas, etc...
Para instalar en linux es mediante el comando en la terminal:
sudo apt-get install ruby
La distribución oficial viene con irb (interactive ruby shell), un interprete interactivo de linea de comandos.
Hola mundo en ruby:
puts "Hello World"
Para ejecutarlo tendríamos que tenerlo en un documento que diga algo.rb y ejecutarlo con el comando ruby (si ya esta el interprete agregado en el PATH):
ruby algo.rb
Algunas cosas a considerar (características):
- Declaración de variables innecesaria.
- Todo es un objeto (clases, métodos, etc).
- Operaciones poderosas sobre cadenas.
- No es necesario agregar punto y coma (;) para terminar cada expresión.
Parte 1 - Comentarios, numeros, operadores, iteraciones, métodos:
Cualquier linea que comience con #, se convierte en un comentario.
Divisiones de numeros enteros las devuelve en enteros; para que regrese un flotante se le agrega un .0 al final de cualquier numero ya sea el numerador o el divisor.
Los operadores son casi los mismos que en C o Java:
Existe la interpolación de cadenas, que significa que al agregarse un #{variable} dentro de la cadena, intercambia eso por la variable dentro de ello.
Si se multiplica una cadena por algun numero, se regresa esa cadena tal numero de veces (consecutivas).
Se pueden unir cadenas de manera simple con el operador +.
Variables globales se manejan con un simbolo $ incial: $variable.
Los metodos se crean entre las palabras def y end, ejemplo:
def algo(parametro1, param2)
...
end
Cualquier linea que comience con #, se convierte en un comentario.
Divisiones de numeros enteros las devuelve en enteros; para que regrese un flotante se le agrega un .0 al final de cualquier numero ya sea el numerador o el divisor.
Los operadores son casi los mismos que en C o Java:
: | Alcance (scope) |
[] | Índices |
** | Exponentes |
+ - ! ~ | Unarios: pos/neg, no,… |
* / % | Multiplicación, División,… |
+ - | Suma, Resta,… |
« » | Desplazadores binarios,… |
& | 'y' binario |
|, ^ | 'or' y 'xor' binarios |
> >= < <= | Comparadores |
== === <=> != =~ !~ | Igualadad, inegualdad,… |
&& | 'y' booleano |
|| | 'o' booleano |
.. … | Operadores de rango |
= (+=, -=,...) | Asignadores |
?: | Decisión ternaria |
not | 'no' booleano |
and, or | 'y', 'o' booleano |
Existe la interpolación de cadenas, que significa que al agregarse un #{variable} dentro de la cadena, intercambia eso por la variable dentro de ello.
Si se multiplica una cadena por algun numero, se regresa esa cadena tal numero de veces (consecutivas).
Se pueden unir cadenas de manera simple con el operador +.
Variables globales se manejan con un simbolo $ incial: $variable.
Los metodos se crean entre las palabras def y end, ejemplo:
def algo(parametro1, param2)
...
end
Se pueden crear rangos de numeros al escribir (x..y) o (x...y), y convertirlos a arreglos con el método .to_a
La iteración de arreglos es algo distinta a los comunes C y Java, se utiliza un método llamado .each, tambien existen metodos bastante utiles para los arreglos como el .sort y .length los cuales dan el mismo arreglo ordenado y la longitud del mismo, respectivamente.
Se pueden insertar arreglos dentro de arreglos: arreglo1 = [47.47, 'hola', [true, false]]
Hay una forma contraria a if que se llama unless, como funciona?
A menos de que se cumpla la condicion, las instrucciones del bloque se ejecutaran.
Los métodos que terminan en ! son llamados bang porque en lugar de regresar otro objeto, trabajan sobre el mismo objeto modificándolo de manera peligrosa.
Hay muchos mas métodos, y palabras clave, tal vez sea mejor leerlos aquí.
Ahora aquí hay un ejemplo que resume algunas de las cosas que comente.
Otro para calcular el factorial
Guias para aprender ruby:
- http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials
- http://rubylearning.com/satishtalim/tutorial.html
- http://www.tutorialspoint.com/ruby/
- http://www.fincher.org/tips/Languages/Ruby/
¿Va a dejar de ser un borrador eventualmente? Te pongo dos puntos por mientras.
ResponderEliminarSería bueno que ya subas los reportes 3, 4 y 5 y las diapositivas de la segunda presentación para que no te queden muchas cosas atrasadas.
ResponderEliminar