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
ifNotNil:pasa el valor no nulo a su bloque.ifNil:provee el defecto para el caso ausente.isNilresponde la pregunta booleana llana.
Palabras clave y builtins usados aquí
nil
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.
Paso 3 de 3 en Control de flujo; paso 9 de 31 en Fundamentos del lenguaje.