Preguntar a los objetos en Smalltalk
class, respondsTo:, isKindOf:: la reflexión como conversación.
"Ask any object what it is: class, respondsTo:, isKindOf:."
| things |
things := OrderedCollection new.
things add: 42; add: 'galley'; add: #proof; add: 3/4.
things do: [:each |
Transcript show: each printString, ' is a ',
each class name; cr].
Transcript show: (42 respondsTo: #sqrt) printString; cr.
Transcript show: ('galley' isKindOf: Collection) printString; cr.
Transcript show: (42 isKindOf: Number) printString; cr.
Cómo funciona
- Cada objeto responde
classcon su propia clase. respondsTo: #sqrtpregunta antes de enviar.isKindOf:sube la cadena de superclases por ti.
Palabras clave y builtins usados aquí
new
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 425
- Tokens
- 77
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 77 segundos.
Paso 1 de 3 en Reflexión; paso 26 de 31 en Fundamentos del lenguaje.