Qu'advient-il des variables d'instance lors de la copie d'une instance avec ruby

Conclusion

Les variables d'instance sont également copiées

Vérification

S'il y avait une telle classe

class Test
  def set_name(name)
    @name = name
  end
  def get_name
    @name
  end
end

Tout d'abord, définissez la variable d'instance normalement

origin = Test.new
=> #<Test:0x00007fcebd06e940>

origin.set_name("origin")
=> "origin"

origin.get_name
=> "origin"

Une fois clonée, la variable d'instance entière est copiée

copy = origin.clone
=> #<Test:0x00007fcebd05d7a8 @name="origin">

copy.get_name
=> "origin"

La réécriture de la variable d'instance de copie n'affecte pas l'original

copy.set_name('copy')
=> "copy"

origin.get_name
=> "origin"

dup Idem pour dup

copy2 = origin.dup
=> #<Test:0x00007fcebd054040 @name="origin">

irb(main):030:0> copy2.get_name
=> "origin"

Recommended Posts

Qu'advient-il des variables d'instance lors de la copie d'une instance avec ruby
[Ruby] Qu'est-ce qu'une instance?
Après avoir installé le gemfile'devise''bootstrap 'avec des rails, que faire lorsque l'url est une erreur
[Ruby] Est-ce que self fait référence à une classe ou à une instance?
Initialisation avec une chaîne vide vers une instance de type Java String
Comment spécifier la base de données lors de la création d'une application avec des rails
Comment gérer les instances
Que faire si une exception UnsupportedCharsetException se produit dans un JRE léger
[Ruby] C'est la solution. Quand dois-je utiliser des variables d'instance?
J'ai eu un IllegalAccessError en essayant d'utiliser PowerMock avec JUnit
Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails
Téléchargement automatique de fichiers avec l'ancienne gemme Ruby Que faire avec Watir
Étudier à CodeWar (ruby) ④ cas ~ quand
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Que faire si vous mourez avec zip si vous avez pom lors de la création d'un fichier exécutable avec gradle
[IOS] Que faire lorsque l'image est remplie d'une seule couleur
Que faire lorsque CentOS ne peut pas être démarré avec VirtualBox sur Catalina
Que faire si une erreur se produit lorsque nokogiri entre lors de l'installation du bundle
Remarques sur ce qu'il faut faire lorsque EC2 est configuré avec t2.micro
Comment recadrer une image avec libGDX
Envoyer des e-mails depuis Gmail avec Ruby
Que faire lorsqu'une exception javax.el.PropertyNotWritableException se produit
Que faire lorsque la méthode non définie ʻuser_signed_in? '
Conversion de JSON en TSV et TSV en JSON avec Ruby
Comment vérifier si une variable d'instance est définie dans une classe Ruby
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Que faire quand est invalide car il ne commence pas par un "-"
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
WELD-001408: Que faire lorsque les dépendances non satisfaites pour le type Bean avec des qualificatifs @Default
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field