typestar

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

  1. Un alias es el mismo objeto; un copy es uno nuevo.
  2. Hacer crecer la copia deja intacto el original.
  3. == distingue lo que = no puede.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Orden e identidad; paso 23 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →