Valor de retorno de clase Ruby

Estoy aprendiendo Ruby e hice una clase para ayudar:

class WhatImDoing def initialize puts "not doing anything" end end 

con la salida de:

 not doing anything # 

Tengo curiosidad, ¿de qué se trata la segunda línea? ¿Es una ubicación de referencia para el objeto WhatImDoing que he creado? ¿Puedo acceder a los objetos a través de esta ubicación (como un puntero o algo)? Etc … Tratando de entender mejor a Ruby, en general.

Gracias.

La segunda línea es la salida de irb , que muestra el valor de retorno de la última instrucción.

Si establece algo igual a ese valor:

 > class WhatImDoing def initialize puts "not doing anything" end def ohai puts "Ohai" end end > tmp = WhatImDoing.new => # 

Podrías usarlo:

 > tmp.ohai Ohai 

Si tuviera un to_s personalizado, mostraría que en su lugar:

 > class WhatImDoing def to_s "#{super} kthxbai" end endt > tmp = WhatImDoing.new => # kthxbai 

Supongo que esa fue la salida de irb. Irb intentó imprimir su objeto, es decir, convertirlo en una cadena. Dado que no proporcionó un método personalizado a_s (“a cadena”), su objeto heredó este:

http://ruby-doc.org/core-1.9.3/Object.html#method-i-to_s

Devuelve una cadena que representa obj. El valor predeterminado to_s imprime la clase del objeto y una encoding de la identificación del objeto. Como caso especial, el objeto de nivel superior que es el contexto de ejecución inicial de los progtwigs de Ruby devuelve “main”.

Al profundizar en el código fuente, se revela que el número hexadecimal es, de hecho, la dirección de memoria ocupada por esa instancia de objeto. Realmente no hay nada lujoso que puedas hacer con esa información, en Ruby. Es solo una forma conveniente de generar un identificador único para una instancia de objeto.

Sí, es una referencia al objeto que está creando. Sí, puedes acceder a ese objeto.