Clase Ruby usando attr_accessor y método de inicialización

Trabajando para hacer un pequeño script de línea de comandos en Ruby, donde el usuario proporciona algunos datos relacionados con los restaurantes y se devuelve la información calculada.

Actualmente tengo el siguiente código:

class Restaurant
 attr_accessor :name :type :avg_price
 def initialize(name, type, avg_price)
   @name = name
   @type = type
   @avg_price = price
 end
 end

Pregunta 1

Si usamos attr_accessors método para declarar type y price y name ¿Por qué es necesario el método Initialize? ¿Es esto porque necesitamos establecer los valores ingresados?

Pregunta 2

Hay una subclase llamada RestaurantList seguido por < Array en el código. ¿Cuál es la función de esto?

¿La clase Array no está definida en el código? ¿Es una clase integrada en Ruby llamada Array? Si es así, ¿qué hace exactamente?

preguntado el 27 de julio de 12 a las 21:07

1 Respuestas

Pregunta 1

Los programas attr_accessor El método es un atajo para declarar la variable accesible fuera del bloque dentro del método.

Los programas initializer El método en Ruby es el método que se llamará cuando alguien inicialice algo de esa clase, es decir chipotle = Restaurant.new 'Chipotle', 'Mexican', 8.00

Pregunta 2

Array es de hecho una clase integrada en Ruby (clases integradas generalmente denominadas Biblioteca estándar de Ruby, consulte aquí para la documentación de MRI 1.9.3 sobre el Array clase. No es necesario hacer ningún tipo de herencia especial para poder utilizar el Array clase sin embargo. El lenguaje se define de manera tal que no es necesario heredar cosas como cadenas, hashes, matrices y otras clases de uso común.

Dicho esto, estos pueden sobrecargarse. No se sorprenda el día que encuentre algo que parezca una matriz pero que tenga una funcionalidad alternativa.

Otras Notas

Una cosa a tener en cuenta cuando se acerca a la programación de Ruby es que todo es un objeto A menudo escuchará esto, pero es difícil de comprender cuando bucea por primera vez, pero aún así es importante tener en cuenta que todo se puede mapear de nuevo a la Object clase en Ruby, ver aquí para la documentación sobre el Object clase.

Respondido el 20 de junio de 20 a las 10:06

Muchas gracias, ahora está muy claro. ¿Cuánto tiempo te llevó aprender a programar con Ruby por tu cuenta? gracias. - RubyPrincipiante

@user1556385 Me tomó cerca de 4 meses aprender Rubí, para dar un poco más de perspectiva me tomó alrededor de un mes para aprender php. Definitivamente no tengo un manejo tan bueno como me gustaría (específicamente la capacidad de utilizar la metaprogramación de Ruby de manera efectiva), pero recuerde que todos aprenden a su propio ritmo. La mayoría de las personas con las que he hablado sobre el aprendizaje de Ruby describen el día "simplemente hizo clic", simplemente continúe, siga publicando en la pila (¡la comunidad aquí es realmente genial!) ¡Y un día simplemente hará clic! - Rudolph9

Muchas gracias por iluminar mi día, soy un estudiante inteligente, hice un buen trabajo usando el lenguaje C hace mucho tiempo en 2005, con Ruby me pareció PHP cuando vi la clase de capacitación de Lynda.com. un chico de Ucrania me escribió un script de clase simple pero funcional para agregar restaurante, tipo y precio en la línea de comando y luego imprimir la lista en la pantalla, fue muy claro para tener una idea de OOP y cómo usar el método para las acciones y el inicio de las acciones cuando escribió la sentencia loop do. Con el DVD de Lynda.com, me confundí, la única diferencia con el código de tipo que Lynda script usó el archivo txt para almacenarlo con la búsqueda: RubyPrincipiante

Lo hice, pero dice que no tengo la Reputación o algo así. Una vez que llegue a ese nivel, me aseguraré de hacerlo. Ya traté de hacerlo antes de que te des cuenta. - RubyPrincipiante

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.