elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Dudilla ruby
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudilla ruby  (Leído 1,783 veces)
rubyestaroto

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Dudilla ruby
« en: 11 Diciembre 2013, 16:05 pm »

Hola a todos, estoy empezando a aprender este lenguaje y tenía una duda respecto a los iteradores.
Supongamos que tenemos la siguiente clase:
Código
  1. class Colegio
  2.  
  3. def initialize()
  4.  @arrayAlumnos=[]
  5.  @arrayProfesores=[]
  6.  @arrayAsignaturas=[]
  7. end
  8.  
  9. end

Mi duda era como podría crear un iterador (each por ejemplo) que solo iterase ante un determinado array (que es un atributo/variable de la clase), por ejemplo eachAlumnos() {| x | puts x} iterararía solo sobre los alumnos y para llamarlo se pondría eachAlumnos(){ ... } y no @arrayAlumnos.each() {...} como haríamos con un iterador normal.


Muchas gracias por todo de antemano. Saludos!!!


« Última modificación: 11 Diciembre 2013, 16:52 pm por EleKtro H@cker » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Dudilla ruby
« Respuesta #1 en: 11 Diciembre 2013, 16:38 pm »

No entendí un carajo! jjajjaa


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: Dudilla ruby
« Respuesta #2 en: 11 Diciembre 2013, 17:13 pm »

y para llamarlo se pondría eachAlumnos(){ ... } y no @arrayAlumnos.each() {...} como haríamos con un iterador normal.

Hola,
No me ha quedado claro si tu intención es reinventar la rueda de un For Each de forma universal?, o crear varios métodos distintos PREDEFINIDOS para esa Class para que simulen un For Each.
¿se trata sólamente de hacer lo mismo pero escribiendo (un poco) menos? xD

En mi opinión si "eachALGO" pretendes hacerlo genérico no tiene ni pies ni cabeza pues .each es una extensión de una Colección mientras que eachALGO no es nada y no podría ser lo mismo puesto que no puedes aplicarlo a ningún objeto, no sería un método de un objecto, sería un método, sin más, entonces no podrías utilizarlo de forma dinámica.

Aunque hace mucho que no programo en Ruby pero está claro que en un lenguaje ni usando Lambdas ni magia podrías instanciar métodos de forma dinámica de la manera en la que lo has planteado símplemente escribiendo "eachLOQUESEA" y que el método se crease por si solo, no, yo pienso que la única solución sería crear tu mismo los métodos necesarios (eachAlumnos() eachLoquesea()) cada uno por separado, con su nombre de método y sus instrucciones preestablecidas por ti dentro del Script, claro, y que cada método hiciese un For Each, es decir, creas el método "eachALUMNOS" y haces un .each en el array que tú, préviamente, hayas declarado en las órdenes de dicho método.

Saludos!

Edito: O bien podrías hacer algo parecido a este método :

Código
  1. # -*- coding: UTF-8 -*-
  2.  
  3. days = [ "Monday",
  4.         "Tuesday",
  5.         "Wednesday",
  6.         "Thursday",
  7.         "Friday",
  8.         "Saturday",
  9.         "Sunday"
  10.       ]
  11.  
  12. def each(collection, &procedure)
  13.  procedure.call(collection)
  14. end
  15.  
  16. each(days) {|var|print var}
  17.  
  18. sleep 5
  19. Process.exit
  20.  
  21. __END__

Saludos
« Última modificación: 11 Diciembre 2013, 17:36 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una dudilla asx
Multimedia
bels_mike 0 1,649 Último mensaje 18 Septiembre 2007, 13:44 pm
por bels_mike
Dudilla en AWT
Java
Adri58 1 2,234 Último mensaje 31 Octubre 2007, 16:50 pm
por egyware
Dudilla ::)
Programación Visual Basic
astaroth_15 6 1,942 Último mensaje 4 Noviembre 2007, 13:35 pm
por ~~
[Introducing Ruby] Lo que debes saber sobre Ruby
Scripting
RyogiShiki 0 9,644 Último mensaje 4 Marzo 2011, 20:45 pm
por RyogiShiki
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines