

le Classi, le strutture e le enumerazioni bisogno di almeno un vuoto metodo di inizializzazione inizializzazione per preparare le loro istanze.
Per le strutture e le enumerazioni, il loro costruttore ha già dichiarato implicitamente.

A proposito delle Classi, se scriviamo una classe, dovremmo dichiararla esplicitamente.

Ok, va bene, vero?
Ma una classe ha Ereditarietà, il che significa che può ereditare i suoi metodi, proprietà e altre caratteristiche della super classe. Passiamo al codice successivo qui sotto

Abbiamo una classe B-una sottoclasse di classe A. Abbiamo aggiunto una variabile e abbiamo aggiunto un inizializzatore per impostare un valore su b
in modo che venga compilato. Ci si potrebbe aspettare che B
abbia ereditato l’inizializzatore di A
, init(a: Int)
. Ma non lo fa. In che modo A
‘ s init(a: Int)
sa come assegnare un valore alla variabile b
che B
ha aggiunto? Non è così. Quindi non possiamo inizializzare un’istanza B
con un inizializzatore che non può inizializzare tutti i nostri valori, in questo modo:

Quindi, se voglio solo inizializzare il valore a o b, con un valore predefinito del resto. Come potrebbe?
Convenienza init ci aiuterà, aggiungere questo codice

Quindi abbiamo un modo molto comodo per inizializzare un’istanza B
.

Ecco fatto! Spero che vi piaccia questo articolo, grazie per la lettura e ci vediamo la prossima volta.