Resumen IV

  1. Las secuencias tienen un límite inferior, un límite superior y una manera de producir valores sucesivos dentro de la secuencia. En Ruby, estas secuencias son creadas usando los operadores de rango "..." y "..."
  2. El operador de dos puntos .. cera un rango inclusivo, y la forma de tres puntos ... crea un rango que excluye el valor superior.
  3. En Ruby, la secuencia 1..100000 es considerada un objeto de la clase Range que contiene referencias a dos objetos de la clase Fixnum.
  4. El método .to_a convierte un rango a un array.
  5. Otro uso para los versátiles rangos es la prueba de intervalos: verificar si un valor está dentro del intervalo representado por el rango. Podemos hacer esto utilizando el operador de igualdad case ===.
  6. Los rangos no están limitados a números. Los límites de un rango pueden ser cualquier objeto Ruby.
  7. Importante: Los bloques de código ruby son porciones de de código delimitadas por corchetes {} o entre do y end y pueden ser asociados con llamadas a métodos.
  8. Los bloques pueden aparecer solamente en el código adyacente a una llamada a un método; el bloque es escrito comenzando en la misma línea que el último parámetro del método (o del cierre de paréntesis de la lista de parámetros). El código en el bloque no es ejecutado en el momento en el que es encontrado. Ruby recuerda el contexto en el que el bloque aparece (las variables locales, el objeto actual, etc.) y ejecuta el método.
  9. Es una costumbre en Ruby usar corchetes ({}) para bloques que ocupan una sola línea y do..end para bloques que abarcan más de una línea. Toma en consideración que la sintaxis que utiliza corchetes tiene mayor precedencia que do..end.
  10. Dentro de un método puedes llamar a un bloque usando yield.
  11. Puedes pasar parámetros a yield, que serán pasados al bloque. Dentro del bloque, debes enlistar los nombres de los argumentos entre barras verticales (||).
  12. Los bloques no son objetos pero pueden ser convertidos a objetos de la clase Proc utilizando el método lambda del módulo Kernel.
  13. Recuerda que no puedes pasar métodos a otros métodos (pero puedes pasar procs) y los métodos no pueden regresar otros métodos (pero pueden regresar procs).
  14. El método para obtener un número aleatorio en Ruby es rand.
  15. Si llamas al método rand, obtienes un número decimal (float) mayor o igual que 0.0 y menor que 1.0. Si pasas un número entero como parámetro (rand(5)) obtienes un número entero mayor o igual que cero y menor que 5.
  16. El método File.open puede abrir un archivo en diferentes modalidades como r (read-only) que comienza al inicio del archivo; r+ (read/write), que comienza al inicio del archivo; w (write only), que trunca el archivo a 0 bytes o crea un archivo nuevo para escritura.
  17. File.open abre un nuevo archivo si no hay un bloque asociado. Si el bloque opcional está presente, será pasado al archivo como argumento y el archivo será cerrado automáticamente cuando el bloque termine.
  18. Recuerda siempre cerrar los archivos que abras. En el caso de un archivo abierto para escritura esto es muy importante y puede prevenir la pérdida de datos.
  19. El método seek de la clase IO busca una posición en un archivo dada por el primer parámetro (un número entero) y el valor del segundo parámetro. El segundo parámetro puede ser IO::SEEK_CUR que busca la posición dada por el primer parámetro más la posición actual; IO:: SEEK_END que busca la posición dada por el primer parámetro hasta el final del archivo y IO::SEEK_SET que busca la posición absoluta dada por el primer parámetro.