Copia e identidad en Smalltalk
= pregunta contenidos iguales; == pregunta mismo objeto.
"= asks equal contents; == asks same object; copy splits them."
| tray duplicate alias |
tray := OrderedCollection new.
tray add: 'em quad'.
alias := tray.
duplicate := tray copy.
duplicate add: 'en quad'.
Transcript show: 'Original: ', tray size printString; cr.
Transcript show: 'Copy: ', duplicate size printString; cr.
Transcript show: (alias == tray) printString; cr.
Transcript show: (duplicate = tray) printString; cr.
Transcript show: (duplicate == tray) printString; cr.
Cómo funciona
- Un alias es el mismo objeto; un
copyes uno nuevo. - Hacer crecer la copia deja intacto el original.
==distingue lo que=no puede.
Palabras clave y builtins usados aquí
new
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 482
- Tokens
- 79
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 79 segundos.
Paso 3 de 3 en Orden e identidad; paso 23 de 31 en Fundamentos del lenguaje.