typestar

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

  1. Cada objeto responde class con su propia clase.
  2. respondsTo: #sqrt pregunta antes de enviar.
  3. isKindOf: sube la cadena de superclases por ti.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Reflexión; paso 26 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →