typestar

nil en Smalltalk

Un objeto como cualquiera; ifNil:ifNotNil: ramifica sobre él.

"nil is an object too; ifNil:ifNotNil: replaces null checks."
| proofreader assistant |
proofreader := 'Alba'.
assistant := nil.

proofreader
    ifNil: [Transcript show: 'Nobody reading proofs'; cr]
    ifNotNil: [:who | Transcript show: who, ' reads proofs'; cr].

assistant
    ifNil: [Transcript show: 'No assistant on shift'; cr].

Transcript show: (assistant isNil) printString; cr.
Transcript show: (assistant ifNil: ['(unassigned)']) ; cr.

Cómo funciona

  1. ifNotNil: pasa el valor no nulo a su bloque.
  2. ifNil: provee el defecto para el caso ausente.
  3. isNil responde la pregunta booleana llana.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
435
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 3 de 3 en Control de flujo; paso 9 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →