Búsqueda en el catálogo
Parte de la sección Programación orientada a objetos del Journey de Swift de Coddy. Lección 53 de 57.
Desafío
FácilAñade el comando SEARCH. Mantén todos los comandos de los pasos anteriores funcionando exactamente como antes.
SEARCH <text>: el texto puede contener espacios. Responde con una línea por cada libro cuyo título contenga el texto, sin distinguir mayúsculas de minúsculas, en orden de id del libro:Dune (available)oEmma (borrowed by ada). Si no hay coincidencias, respondeno matches.
El código proporcionado pasa cada línea de entrada a library.handle(_:) e imprime cada respuesta devuelta en su propia línea. Los nombres de los miembros son palabras individuales en minúsculas, los ids de los libros son números enteros y la entrada contiene únicamente los comandos descritos hasta ahora. Para cualquier otro comando, responde unknown command.
Tu código debe estar en Book.swift, Member.swift y Library.swift. main.swift contiene el código proporcionado de entrada/salida y no se puede editar.
Pruébalo tú mismo
// Código de entrada/salida suministrado: mantenlo como está
var input: [String] = []
while let line = readLine() { input.append(line) }
let library = Library()
for line in input {
for reply in library.handle(line) { print(reply) }
}
Todas las lecciones de Programación orientada a objetos
1Clases y objetos
Trabajar con archivosDefinir clasesMétodos y selfInicializadoresLas clases son referenciasRepaso: tarjeta de biblioteca4Encapsulación
Control de accesoSolo lectura desde fueraProtección del estadoInicializadores que pueden fallarRepaso - Cuenta bancaria7Polimorfismo y genéricos
PolimorfismoConversión de tiposFunciones genéricasTipos genéricosRepaso - Calculadora de formas2Structs y tipos por valor
StructsSemántica de valoresMétodos mutablesStruct o claseRepaso - elemento del inventario5Herencia
SubclasesSobrescritura de métodosInicializadores y superfinal y jerarquíasRepaso: jerarquía de empleados8Protocolos estándar
CustomStringConvertibleEquatableComparableHashableRepaso - Ordenamiento personalizado11Proyecto: Gestión de bibliotecas
Libros y miembrosPréstamo de librosPractica por tu cuenta: Playground de Swift