variable initialize example attr_reader ruby

initialize - instance variable ruby



Ruby: initialize() contra el cuerpo de la clase? (3)

Bueno, initialize se llama por new , mientras que el cuerpo de la clase se evalúa en la definición / carga de la clase.

Además, intente establecer una variable de instancia en el cuerpo de la clase o en la initialize . Notará que este último pertenecerá al objeto creado, mientras que el primero pertenecerá a la instancia de clase (de ahí la variable de instancia de clase de nombre).

En Ruby, ¿cuál es la diferencia entre poner código en un método initialize() lugar de hacerlo directamente en el cuerpo de la clase? Ambos parecen ejecutarse al llamar a MyClass.new .

Claramente, initialize() puede aceptar parámetros, pero ¿es esa la única diferencia?

class MyClass puts ''Hello'' def initialize(params) puts ''World'' end end


Intenta crear dos instancias de MyClass

a = MyClass.new b = MyClass.new

para ver la diferencia:

Hola

Mundo

Mundo

El código en el cuerpo de la clase se ejecuta solo una vez, cuando Ruby carga el archivo. initialize () se ejecuta cada vez que creas una nueva instancia de tu clase.


si escribe un código en el cuerpo de la clase, se ejecutará cuando Ruby cargue esa clase, la carga solo puede ocurrir una vez. Y la inicialización se ejecutará solo cuando realice una instancia de clase, y se ejecutará cada vez que llame a new a la clase.

ahora cuando haces MyClass.new ruby ​​carga la clase MyClass buscará clase en la memoria si no es así carga esa clase, luego llama a su nuevo método para crear instanc