Forud for den planlagte 2019-udgivelse af Swift 5 har Apple frigivet den mellemliggende Swift 4.2-version.
Aktuel version: Hvad er nyt i Apples Swift 4.2
Version 4.2 af Apples Swift programmeringssprog bringer sproget tættere på en stabiliseret applikations binær interface (ABI) og muliggør binær kompatibilitet til fremtidige udgivelser. ABI-stabilitet muliggør binær kompatibilitet mellem biblioteker og applikationer, der er sammensat med forskellige versioner af sproget.
Selvom Apples mål er stabilitet, er Swift 4.2 ikke binær-kompatibel med tidligere udgivelser. Kildekompatibilitet leveres dog. De fleste kildekoder, der er bygget med Swift 4.0-kompilatoren, skal kompileres med både Swift 4.2- og Swift 4.1-kompilatorerne.
Andre nye funktioner i Swift 4.2 er:
- Generiske forbedringer, forankret ved afslutningen af understøttelse af betinget overensstemmelse, reducerer mængden af kogepladekode og gør mere kode genanvendelig.
- Standardbiblioteksfunktioner inkluderer forbedringer af Hashable-protokollen og et samlet sæt randomiseringsfunktioner og protokoller.
- Batch-mode kompilering understøtter, hvilket forbedrer byggetider.
- En ændring i opkaldskonventionen til retain / release-cyklus for at reducere kodestørrelse og forbedre ydeevnen.
- Rekursiv understøttelse af metadata.
- Mere kompakt reflektionsmetadata.
- Afbøjningsargumenter indlejret på opkaldssteder.
- Forskellige fejlrettelser, f.eks. Til nedarvning af generiske initialiseringer.
- Det
kompilator
direktiv, der er syntaktisk ækvivalent med# hvis hurtig
versionskontrol, men kontrollerer mod versionen af compileren, uanset hvilken kompatibilitetstilstand der kører. - Nye Swift-pakkehåndteringsfunktioner, inklusive support til batch-tilstand, med mål, der nu er kompileret ved hjælp af denne tilstand; forbedret skema generation logik; og automatisk generering af Xcode-projekt.
Hvor downloades Swift 4.2
Du kan downloade Swift 4.2 ved at downloade Xcode 10.0 IDE fra Apple.
Andre planer for Swift 4.2 inkluderer:
- Forbedringer af kompileringstidens ydeevne.
- Strenge er nu 16 byte i stedet for 24 byte. Apple ser dette som en god kompromis mellem hukommelsesforbrug og ydeevne, mens den er stor nok til at udføre små strengoptimeringer.
- API'er tilbydes til lettere generering af tilfældigt tal.
- Det
har import
build-konfigurationsdirektivet udtrykker bedre hensigt ved deling af kode mellem iOS og MacOS.
Tidligere version: Hvad er nyt i Swift 4.1
Udgivet i slutningen af marts 2018 tilføjer Swift 4.1 flere generiske egenskaber til sproget såvel som forbedringer af opbygningen. Version 4.1 er kildekompatibel med Swift 4.0.
Generiske relaterede forslag implementeret i 4.1-udgivelsen inkluderer betingede overensstemmelse, der udtrykker forestillingen om, at en generisk type kun vil være i overensstemmelse med en bestemt protokol, når typeargumenter opfylder specifikke krav. Denne funktion forventes at have stor indflydelse på Swift-standardbiblioteket. Andre generiske forbedringer inkluderer:
- At få compileren til at syntetisere
Tilsvarende
ogHashable
overensstemmelse for at reducere kedelpladen og kompleksiteten. - Oprettelse af standard biblioteksindeks typer
Hashable
. - Fjernelse af den tilknyttede type,
Indeksafstand
, fraKollektion
og ændre anvendelser til betontypen,Int
, i stedet for.
Også vist i Swift 4.1 er flere måder at konfigurere builds, såsom optimering af kodestørrelse og lettere mekanismer til at målrette platform- og miljøstøtte.
Ændringer i hukommelsen i version 4.1 blev foretaget som en del af en plan for at stabilisere ABI (application binary interace) i Swift 5, som forventes sent i år. Disse ændringer under hætte inkluderer brug af et ordstørrelsesfelt i det oprindelige objektoverskrift til referenceoptælling og revision af runtime-funktioner. Desuden kollapses forskellige indsamlingsindpakninger ved brug af betinget overensstemmelse.
Swift 4.1 forbedrer Swift Package Manager. Det løser nu afhængigheder i pakkegrafer, der bruger URL-ordninger som f.eks ssh
og http
. Ydeevnen er også forbedret for pakkegrafer med delte afhængigheder.
4.1-opgraderingen indeholder også Swift-evolutionsforslag, herunder fjernelse af ejerskabsnøgleord, svag
og ikke ejet
, til ejendomserklæringer i en protokol. Dette gøres for at skabe klarhed. Desuden er strukturinitialiserere på tværs af moduler begrænset. Dette matcher en eksisterende begrænsning for klasser.
Hvor downloades Swift 4.1
Du kan downloade Swift 4.1-opgraderingen fra Swift-downloadwebsiden. Swift 4.1 er også tilgængelig med Xcode 9.3 IDE, som har en kodemigrator til at håndtere mange kildeændringer.
Tidligere version: Hvad er nyt i Swift 4.0
Swift 4.0 er en stor opgradering til Apples Swift, den tre år gamle efterfølger til Objective-C-sproget, der bruges til MacOS og iOS-applikationsudvikling.
Swift 4-opgraderingen forbedrer Swift Package Manager og giver nye kompatibilitetstilstande til udviklere. Apple sagde, at Swift 4 også gør Swift mere stabil og forbedrer sit standardbibliotek. Swift 4 er stort set kildekompatibel med Swift 3 og sendes som en del af Apples Xcode 9 IDE.
Hvad er nyt i Swift 4s pakkehåndtering
Swift Package Manager, der debuterede i Swift 3, er værktøj til distribution af kode. Det er integreret med Swift build-systemet til at automatisere processer, herunder download, kompilering og sammenkædning af afhængigheder. Forbedringer i Swift 4s pakkehåndtering inkluderer:
- En renere pakke-API, der giver pakker mulighed for at specificere nye indstillinger. Disse indstillinger giver udviklere mere kontrol over opbygningen af pakker og organisering af kilder på disken.
- Udvikling af flere pakker i tandem er blevet lettere.
- Formalisering af pakkeprodukter, der muliggør kontrol over hvilke biblioteker en pakke udgiver til klienter.
- Pakkebygninger på MacOS findes nu i en sandkasse, hvilket forhindrer netværksadgang og filsystemændring for at reducere rækkevidden af ondsindede manifestationer.
Nye kompatibilitetstilstande i Swift 4-hjælpemigrering
Swift 4s nye kompatibilitetstilstande kan spare dig for at skulle ændre kode for at kunne bruge den nye version af compileren. To tilstande understøttes, herunder Swift 3.2-tilstand, som accepterer de fleste kildefiler bygget med Swift 3.x-kompilatorer, og Swift 4.0-tilstand, som inkluderer Swift 4 og API-ændringer.
Apple sagde, at der er behov for en vis kildeoverflytning til mange projekter, men antallet af kildeændringer er "ret beskedne" sammenlignet med mange tidligere store ændringer mellem Swift-udgivelser. Introduktionen af kompatibilitetstilstande i Swift 4 giver udviklere mere kontrol over migrationshastigheden.
Sprogforbedringer findes i overflod i Swift 4
Swift 4 introducerer flere sprogforbedringer, herunder:
- En hurtigere og lettere at bruge
Snor
implementering bevarer Unicode-korrekthed og understøtter udvikling og brug af underlag. - Forbedret brug og styring af samlingstyper.
- Håndhævelse af eksklusiv adgang til hukommelse, hvor potentielle ændringer af variabler skal være eksklusive med enhver anden adgang til den variabel.
- Evne til arkivering
struct
ogenum
typer. - Typesikker serialisering til eksterne formater som JSON.
- Protokolorienterede heltal, der renser heltal-API'er og gør dem mere nyttige til generisk programmering.
- Støtte til
hvor
klausuler for at begrænse tilknyttede typer. Tidligere kunne tilknyttede typer kun udtrykke enkle arvebegrænsninger og ikke mere sofistikerede begrænsninger, der var tilgængelige for generiske typer medhvor
klausul. - Inkludering af
hurtigt løb
kommando til at opbygge og køre en eksekverbar fil, der er defineret i den aktuelle pakke. - Fjernelse af
endelig
nøgleordssupport, når deklarerer funktioner i protokoludvidelser. - Forbedret interaktion mellem
privat
erklæringer og udvidelser medprivat
adgangskontrol udvidet, så medlemmer defineret i en udvidelse af en type har den samme adgang som medlemmer, der er defineret på selve typen, så længe typen og udvidelsen er i den samme kildefil.