Junior — Middle
Kas struktuurist eemaldatakse initsialiseerija selle muutmisel?
sobes.tech AI
Vastus AI-lt
Swiftis on struktuuridel automaatselt genereeritud initsialiseerijad (memberwise initializers), mida kompilaator loob struktuuri omaduste põhjal. Kui muudate struktuuri, näiteks lisades või eemaldades omadusi, muutub automaatselt genereeritud initsialiseerija vastavalt.
Kuid, kui te selgelt deklareerite oma initsialiseerija, siis automaatselt genereeritud initsialiseerijat ei loo.
Seega, initsialiseerijat ei kustutata, vaid see taastoodetakse kompilaatori poolt, kui struktuur muudetakse, kui see oli automaatselt genereeritud. Kui initsialiseerija on deklareeritud käsitsi, jääb see kehtima kuni selle kustutamiseni või muutmiseni.