Apple je izdao Swift 6.3, programski jezik.

Apple je izdao Swift 6.3. Službene verzije dostupne su za Linux, Windows i macOS. Izvorni kod je licenciran pod Apache 2.0 licencom.

Swift kombinira najbolje elemente C i Objective-C i pruža objektni model kompatibilan s Objective-C (Swift kod se može miješati s C i Objective-C kodom), ali se razlikuje u upotrebi automatske dodjele memorije, varijabilnoj kontroli preljeva , i polja, zaštita od korištenja neinicijaliziranih varijabli i blokiranje pristupa memoriji nakon što se ona oslobodi, što značajno povećava pouzdanost i sigurnost koda. Swift također nudi mnoge moderne tehnike programiranja, kao što su zatvaranja, generičko programiranje, lambda izrazi, torke i tipovi rječnika, brze operacije prikupljanja i elementi funkcionalnog programiranja.

Swift implementacija izgrađena je pomoću tehnologija iz besplatnog LLVM projekta. Kako bi se osigurala visoka izvedba, Swift programi su kompilirani u strojni kod, koji u testovima pokazuje izvedbu koja je 30% brža od Objective-C koda. Umjesto skupljača smeća, Swift koristi brojanje referenci objekta. Paket uključuje Swift Package Manager, koji pruža alate za distribuciju modula i paketa s bibliotekama i aplikacijama na Swift jeziku, upravljanje ovisnostima, automatsko preuzimanje, sastavljanje i povezivanje komponenti.

Ključne promjene u novoj verziji:

  • Objavljeno je prvo službeno izdanje Swift SDK-a za Android platformu, koje vam omogućuje korištenje Swift jezika za razvoj Android aplikacija, kao i ugradnju pojedinačnih Swift komponenti u postojeće Android aplikacije napisane u Javi i Kotlinu.
  • Dodan je atribut "@c", koji omogućuje izvoz funkcija i nabrajanja napisanih u Swiftu za korištenje u C kodu (generira se datoteka zaglavlja s odgovarajućim C definicijama).
  • Implementirani su selektori modula koji vam omogućuju eksplicitno određivanje iz kojeg modula koristiti API kada više uvezenih modula pruža API s istim nazivom. import ModuleA import ModuleB let x = ModuleA::getValue() // poziv 'getValue' iz ModuleA let y = ModuleB::getValue() // poziv 'getValue' iz ModuleB
  • Dodani su novi atributi za kontrolu optimizacija kompajlera: @specialize — specijalizira generičke API-je za često korištene tipove; @inline — inline proširenje funkcije na mjestu poziva; @export(implementation) — izvozi implementaciju funkcije u stabilni ABI biblioteke.
  • Predlaže se preliminarna implementacija sustava za izgradnju Swift Build, integriranog u SwiftPM (Swift Package Manager).

Izvor: opennet.ru

Dodajte komentar