Dart Academy · Lezione

Membri statici delle extension e conflitti

Risol​​vere i conflitti e aggiungere helper statici.

Lezione 3 di 413 passaggi

Membri statici delle extension e conflitti è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 3 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 Dart Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Dart Academy include 4 lezioni in totale.

Due helper, stesso nome

Se importa due extension che aggiungono entrambe a String un metodo chiamato parse, Dart non sa più quale intende.

Perché si verificano i conflitti

I membri delle extension non appartengono direttamente al tipo, quindi due metodi con lo stesso nome creano un'ambiguità su cui il compilatore rifiuta di fare supposizioni.

Individui l'errore

Quando accade, Dart segnala un'extension ambigua e interrompe l'esecuzione, invece di scegliere in silenzio una soluzione al posto Suo.

"7".parse(); // error: ambiguous between two extensions

Nasconda un'extension durante l'importazione

Utilizzi hide nell'importazione per escludere un'extension in conflitto indicandone il nome, lasciando all'altra la possibilità di risolvere la chiamata.

import 'b.dart' hide NumberParsing;

Oppure ne mostri una sola

Il trucco opposto è show, che importa solo i nomi indicati ed esclude silenziosamente tutti gli altri.

import 'a.dart' show NumberParsing;

La chiami in modo esplicito

Può anche essere preciso con un'applicazione esplicita: indichi il nome dell'extension e passi il valore tra parentesi.

NumberParsing("7").parse();

Aggiunga membri statici

Le extension possono contenere anche membri statici. Questi appartengono al nome dell'extension, non ai valori su cui chiama i metodi.

extension MathX on num {
  static num clampLow(num x) => x < 0 ? 0 : x;
}

Acceda agli statici tramite il nome

Chiami un membro statico tramite il nome dell'extension, proprio come uno statico di una classe. Il valore ricevitore non è coinvolto.

print(MathX.clampLow(-3)); // 0

Gli statici richiedono un nome

Poiché si accede agli statici tramite l'extension, un'extension senza nome non può esporli. Le assegni un nome per utilizzare i membri statici.

Membri di istanza e membri statici

I membri di istanza usano this e operano su un valore; i membri statici ignorano il valore e appartengono all'extension stessa.

Pianifichi per evitare i conflitti

Assegni nomi e membri chiari e specifici alle extension. Una buona denominazione previene la maggior parte dei conflitti prima che sia necessario usare show o hide.

Verifica rapida

Un conflitto, una soluzione pulita. Quale funziona?

Riepilogo: statici e conflitti

Può risolvere i conflitti tra extension con show, hide o chiamate esplicite, e aggiungere membri statici accessibili tramite il nome dell'extension. 🧩

Gratis per iniziare

Impara Dart con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Membri statici delle extension e conflitti» è gratuita?

Sì — il testo completo di «Membri statici delle extension e conflitti» è 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 Dart Academy, passa a CoddyKit PRO. Il corso Dart Academy include 4 lezioni in totale.

Cosa imparerò in «Membri statici delle extension e conflitti»?

Risol​​vere i conflitti e aggiungere helper statici. Eserciti Dart 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 Dart Academy?

Non è richiesta alcuna esperienza precedente. Dart 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 3 di 4.

Quanto tempo richiede la lezione «Membri statici delle extension e conflitti»?

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 Dart Academy?

Sì. Ogni lezione Dart 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. Scrivere la prima extension
  2. Extension sui generics
  3. Membri statici delle extension e conflitti
  4. Extension type per wrapper senza costi
← Torna a Dart Academy