lunes, 14 de noviembre de 2016

Dictionary en smalltalk

El Dictionary (Diccionario) es una colección que puede verse desde 2 puntos de vista:

Como un Set de asociaciones clave->valor

Como un contenedor donde los elementos son nombrados desde el exterior, donde el nombre puede ser cualquier objeto que responda al mensaje #=.

Ejemplos:

"instanciar, y llenar, un diccionario"
| diccionario |

diccionario := Dictionary new.

diccionario at: 'hoy' put: Date today.
diccionario at: 'ahora' put: Time now.
diccionario at: false put: 'es false'.

"algunas formas de acceder al diccionario"
diccionario at: 'hoy'.
diccionario at: 'mañana' ifAbsent:[nil].
diccionario at: 'mañana'.
diccionario at: 'mañana' ifAbsentPut:[Date tomorrow].
diccionario at: 'mañana'.

"otras formas de acceso"
diccionario keys.
diccionario values.

"algunas iteraciones"
Transcript clear.
Transcript cr; show: '#do:'; cr.
diccionario do: [:each |
   Transcript show: ' ' , each asString; cr.
].

Transcript cr; show: '#associationsDo:'; cr.
diccionario associationsDo: [:each |
   Transcript show: ' ' , each asString; cr.
].

Transcript cr; show: '#keysAndValuesDo:'; cr.
diccionario keysAndValuesDo:[:eachKey :eachValue |
   Transcript show: ' ' , eachKey asString , ' - ' , eachValue asString; cr.
].