Declaración de diccionarios
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 12 de 56.
Un diccionario es una colección desordenada de pares clave/valor. Tanto el tipo de clave como el tipo de valor son fijos cuando lo creas.
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // falseLa anotación de tipo [String: Int] se lee como "las claves son String, los valores son Int". Swift generalmente puede inferirlo a partir del literal, pero escribirlo hace que los inicializadores vacíos sean inequívocos:
var counts: [String: Int] = [:]
// vs. un array vacío, que también necesitaría un tipoLeer una clave que existe devuelve el valor. Leer una clave que no existe devuelve nil; la siguiente lección cubre esa parte.
Desafío
FácilLee tres líneas de entrada: un nombre, un país y una edad entera. Construye un único diccionario llamado person con claves String y los valores que leíste (la edad se mantiene como un Int, necesitarás un tipo de valor heterogéneo, consulta la sugerencia).
Imprime tres líneas:
- El número de entradas en el diccionario
name=<value>usando acceso por subíndicecountry=<value>usando acceso por subíndice
Usa la forma imprimible: cuando leas el valor del diccionario como un Any, realiza un force-unwrap antes de imprimir.
Para la entrada Alice / UK / 30, la salida es:
3
name=Alice
country=UKHoja de referencia
Un diccionario almacena pares clave/valor con tipos de clave y valor fijos:
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // falseCrea un diccionario vacío con anotación de tipo explícita:
var counts: [String: Int] = [:]Usa [String: Any] para tipos de valores heterogéneos (tipos mixtos):
var person: [String: Any] = [
"name": "Alice",
"age": 30
]Pruébalo tú mismo
let name = readLine()!
let country = readLine()!
let age = Int(readLine()!)!
// TODO: construir un [String: Any] llamado person, imprimir count, name, country
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras3Diccionarios
Declaración de diccionariosBúsqueda opcionalActualización de diccionariosIteración de diccionariosAgrupación de valoresResumen - Inventario6Funciones de orden superior - Parte 2
compactMapflatMapsorted(by:)Construcción de pipelinesRepaso - Tabla de posiciones