0Pricing
Swift Academy · Lección

Composición de protocolos con &

Combine varios protocolos en un único requisito de tipo.

Composición de protocolos con & es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Introducción

La composición de protocolos permite combinar varios protocolos en un único requisito de tipo mediante `&`. Es la respuesta de Swift a la herencia múltiple.

Composición básica

```swift protocol Named { var name: String { get } } protocol Aged { var age: Int { get } } func describe(_ entity: Named & Aged) { print("\(entity.name) is \(entity.age)") } ``` `Named & Aged` es un requisito de tipo temporal, no un protocolo nuevo.

Uso en parámetros de funciones

```swift protocol Drawable { func draw() } protocol Animatable { func animate() } func render(_ view: Drawable & Animatable) { view.draw() view.animate() } ```

Almacenamiento de tipos compuestos

```swift var entity: Named & Aged = makePerson() entity.name // accessible entity.age // accessible ``` El tipo de la variable restringe los miembros de los protocolos a los que se puede acceder.

Composición con clases

```swift protocol Configurable { func configure() } func setup(_ vc: T) { vc.configure() present(vc, animated: true) } ``` Combine un requisito de clase con un protocolo usando `&` en los genéricos.

Composición de protocolos frente a un protocolo nuevo

```swift // Don't create a new protocol just to combine: protocol NamedAndAged: Named, Aged {} // often unnecessary // Prefer inline composition at use sites: func describe(_ e: Named & Aged) { } ``` Los protocolos nuevos solo tienen sentido cuando la combinación necesita métodos de extensión.

typealias para composiciones largas

```swift typealias Service = Authenticable & Cacheable & Loggable func process(service: Service) { service.authenticate() service.log("processing") } ``` Use `typealias` para asignar un nombre a las composiciones que utilice con frecuencia.

Composición en restricciones genéricas

```swift func fetchAndCache(_ resource: T) async throws { let data = try await resource.fetch() resource.cache(data) } ```

Herencia de protocolos frente a composición

• Herencia: `protocol C: A, B {}` — C hereda todos los requisitos de A y B • Composición: `A & B` — se realiza en línea y no crea un tipo nuevo Use la herencia cuando todos los tipos conformes deban satisfacer ambos protocolos; use la composición en los puntos de llamada.

Ejemplo del mundo real: delegado y fuente de datos

```swift func setup(_ vc: UITableViewDelegate & UITableViewDataSource) { tableView.delegate = vc tableView.dataSource = vc } ``` Un único controlador de vista suele satisfacer ambos protocolos; la composición permite expresarlo de forma concisa.

Comprobación rápida

¿Qué operador combina varios protocolos en un único requisito de tipo?

Resumen

Conceptos clave: • `Protocol1 & Protocol2`: composición en línea • Úsela en parámetros, tipos de retorno y restricciones genéricas • `typealias` asigna nombres a las composiciones que se utilizan con frecuencia • Prefiera la composición a la creación de protocolos nuevos con el cuerpo vacío • Puede combinar requisitos de clase: `UIViewController & MyProtocol` Siguiente: conformidad condicional.

Preguntas frecuentes

¿La lección «Composición de protocolos con &» es gratis?

Sí — el texto completo de «Composición de protocolos con &» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Composición de protocolos con &»?

Combine varios protocolos en un único requisito de tipo. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Composición de protocolos con &»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Composición de protocolos con &
  2. Conformidad condicional
  3. Requisitos de Self y diseño con Equatable
  4. Principios del diseño orientado a protocolos
← Volver a Swift Academy