[RUBY] Une petite histoire addictive avec def initialize

Lors de l'initialisation, la valeur est définie lorsqu'elle

J'étais accro quand je voulais faire référence à la valeur définie dans initialize dans la méthode de classe

class Hoge
  attr_accessor :aa
  def initialize
    @aa = 'aa'
  end
  def self.bb
    @aa
  end
end

p Hoge.bb
# => nil

Je n'ai pas défini la valeur parce que je n'ai pas fait Hoge.new, Donc rien n'est retourné

class Hoge
  attr_accessor :aa
  def initialize
    @aa = 'aa'
  end
  def bb
    @aa
  end
end

hoge = Hoge.new
p hoge.bb

Vous pouvez faire référence à la valeur en utilisant la méthode d'instance (c'est naturel) Lorsque vous souhaitez utiliser une valeur dans une méthode de classe Définissons la valeur directement sur la variable d'instance sans utiliser initialize.

class Hoge
  @aa = 'aa'
  def self.bb
    @aa
  end
end

p Hoge.bb
#=> "aa"

S'il faut l'utiliser dans une méthode de classe ou une méthode d'instance J'étais accro à apprendre que je devais être conscient du contenu d'initialiser selon le but.

Dédié chaque jour

Recommended Posts

Une petite histoire addictive avec def initialize
Une histoire bloquée avec NotSerializableException
Une petite histoire d'expression régulière Partie 1
Une petite histoire d'expressions régulières Partie 2
Une petite histoire troublée avec Groovy
Une petite histoire addictive après la mise à jour du pilote JDBC pour PostgreSQL
Conseils d'amélioration de la vitesse avec un peu de technologie
J'ai essayé de jouer un peu avec BottomNavigationView ①
Une histoire emballée avec le scanner d'entrée standard de Java
L'histoire de la création d'un proxy inverse avec ProxyServlet
Une histoire d'essayer de s'entendre avec Mockito
Une histoire sur la réduction de la consommation de mémoire à 1/100 avec find_in_batches
Une histoire sur le développement de ROS appelé rosjava avec java
Histoire de créer une application de gestion de tâches avec Swing, Java
Une histoire remplie des bases de Spring Boot (résolu)
Une histoire confuse sur un opérateur ternaire avec plusieurs expressions conditionnelles