0Pricing
Swift Academy · Lezione

Composizione di protocolli con &

Combinare più protocolli in un unico requisito di tipo.

Composizione di protocolli con & è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Introduzione

La composizione dei protocolli consente di combinare più protocolli in un unico requisito di tipo usando `&`. È la risposta di Swift all'ereditarietà multipla.

Composizione di base

```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` è un requisito di tipo temporaneo, non un nuovo protocollo.

Uso nei parametri delle funzioni

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

Memorizzare tipi composti

```swift var entity: Named & Aged = makePerson() entity.name // accessible entity.age // accessible ``` Il tipo della variabile stabilisce i membri dei protocolli a cui è possibile accedere.

Composizione con le classi

```swift protocol Configurable { func configure() } func setup(_ vc: T) { vc.configure() present(vc, animated: true) } ``` Nei generics, si può combinare un requisito di classe con un protocollo usando `&`.

Composizione di protocolli e nuovo protocollo

```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) { } ``` I nuovi protocolli hanno senso solo quando la combinazione richiede metodi di estensione.

typealias per composizioni lunghe

```swift typealias Service = Authenticable & Cacheable & Loggable func process(service: Service) { service.authenticate() service.log("processing") } ``` Si usa `typealias` per dare un nome alle composizioni utilizzate frequentemente.

Composizione nei vincoli dei generics

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

Ereditarietà dei protocolli e composizione

• Ereditarietà: `protocol C: A, B {}` — C eredita tutti i requisiti di A e B • Composizione: `A & B` — inline, senza creare un nuovo tipo Si usa l'ereditarietà quando tutti i tipi conformi devono soddisfare entrambi i protocolli; la composizione si usa nei punti di chiamata.

Esempio reale: Delegate + DataSource

```swift func setup(_ vc: UITableViewDelegate & UITableViewDataSource) { tableView.delegate = vc tableView.dataSource = vc } ``` Spesso un singolo view controller soddisfa entrambi i requisiti: la composizione consente di esprimerlo in modo conciso.

Verifica rapida

Quale operatore combina più protocolli in un unico requisito di tipo?

Riepilogo

Concetti chiave: • `Protocol1 & Protocol2`: composizione inline • Si usa nei parametri, nei tipi restituiti e nei vincoli dei generics • `typealias` assegna un nome alle composizioni utilizzate frequentemente • È preferibile usare la composizione invece di creare protocolli vuoti solo per questo scopo • È possibile combinare anche requisiti di classe: `UIViewController & MyProtocol` Prossimo argomento: conformità condizionale.

Domande Frequenti

La lezione «Composizione di protocolli con &» è gratuita?

Sì — il testo completo di «Composizione di protocolli con &» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Composizione di protocolli con &»?

Combinare più protocolli in un unico requisito di tipo. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Composizione di protocolli con &»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Composizione di protocolli con &
  2. Conformità condizionale
  3. Requisiti Self e progettazione Equatable
  4. Principi della progettazione orientata ai protocolli
← Torna a Swift Academy