Le type int est un type immuable. Par conséquent, la valeur une fois stockée dans la mémoire ne peut pas être modifiée.
Si les valeurs sont identiques, par exemple s'il y a plusieurs variables auxquelles 1 est assigné, toutes ces variables feront référence à une seule mémoire qui stocke 1. La mémoire qui n'est plus référencée par les variables sera-t-elle supprimée? (Enquête requise) (Sera-ce comme un compteur de référence rapide?)
qiita.rb
>>> int1 = 1
>>> int2 = 1
>>> print(id(int1), id(int2))#ID de la mémoire de référence de sortie
4383344848 4383344848
>>> int2 = 3
>>> print(id(int1), id(int2))
4383344848 4383344912
>>> int2 = 1
>>> print(id(int1), id(int2))
4383344848 4383344848
>>> intList = [1,2,3,4,5]
>>> print(id(intList[0])) #Index pour stocker 1
4383344848
>>> print(id(intList[2])) #"3"ID de la mémoire de référence
4383344912 #Je viens de l'attribuer à int2"3"C'est le même que l'identifiant de.(Le nombre de variables de référence pour 3 est devenu zéro, mais je me demande si la mémoire sera nettoyée immédiatement.)
Addendum 2020/10/04:
La mémoire qui n'est plus référencée par des variables sera-t-elle supprimée? (Enquête requise) (Sera-ce comme un compteur de référence rapide?) C'est le même que l'id de "3" qui a été assigné à int2 plus tôt. (Le nombre de variables de référence pour 3 était de zéro, mais je me demande si la mémoire sera nettoyée immédiatement.)
Vous avez commenté la réponse ci-dessus dans la section des commentaires. Merci @shiracamus.
Recommended Posts