Métodos de clase

Ya sabemos definir métodos en las instancias, las clases, los mixins y las autoclases: siempre que definamos métodos en estos lugares, serán las instancias los que entenderán los mensajes correspondientes.

¿Ahora bien, y si queremos que sea la clase la que entienda un cierto mensaje? ¿Cómo hace, por ejemplo, la clase Time para entender el mensaje el mensaje now (Time.now)? ¡Definamos métodos de clase! :muscle:

class Time
  # notá el self delante del now
  def self.now
    # ...
  end
end

Veamos si se entiende: agregá a la clase Array el método zeros, que devuelve un array formado por n 0s:

 Array.zeros(10)
=> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
¡Dame una pista!

Este problema se puede resolver de varias formas:

  • Empleando el mensaje * que también entienden los arrays: ["hola"] * 2
  • Empleando el mensaje new que entiende la clase array: Array.new("hola", 2)
  • Empleando el mensaje times que entiende la clase array: 2.times.map { "hola" }

Tenés que iniciar sesión antes de empezar a enviar tus soluciones