Megjelent a Dart 2.12 null-safety és C interoperabilitással

A Google kiadta a Dart 2.12-t, a Flutterben alkalmazások készítéséhez használt nyelv új verzióját. A kiadás a Flutter 2.0 mellett érkezik.

A... val a Flutter 2.0 kiadása, a Google a Dart 2.12-t is stabilizálja. Ha nem tudná, a Dart az a nyelv, amelyet Flutter használ. Ez egy TypeScript-alapú nyelv, de néhány nyelvi kiegészítéssel érkezik, beleértve azokat is, amelyeket hamarosan át fogok vizsgálni.

Null Biztonság

A nulla biztonság egy nagyon jó nyelvi funkció. Arra kényszeríti Önt, hogy mérlegelje, hogy egy változó valaha is null lesz-e, és kifejezetten kezelje a lehetséges nullhelyzeteket, ugyanakkor garantálja, hogy bizonyos változók soha nem lesznek nullak.

A Dart 2.12-ben már teljes mértékben támogatja a null-safety, a Swift és a Kotlin szintaxisához hasonló szintaxissal. Létezik még az intelligens casting is, ahol ha a Dart pontosan tudja, hogy egy alapesetben nullázható változó nem lehet nulla, akkor implicit módon egy nem nullázható formába önti.

Mivel a null-safety egy (nagyon) megtörő változás, ez a funkció választható. Ha frissíted a Dart 2.12-re, a fordításod nem fog tönkremenni, és nem kell órákat töltened azzal, hogy mindenhez semmisségi utalásokat adj. Akár null-safe függőségeket is használhat, ha a projekt még nem null-safe.

Ha a migráció mellett döntött, használhatja a beépített migrációs eszközt (dart vándorol) és/vagy a migrációs útmutató hogy mindent beállítsunk.

Továbbá, bár a null-safety benne van a Dart 2.12-ben, ha új Flutter projektet hoz létre, a null-safety nem lesz bekapcsolva. Manuálisan kell engedélyeznie. Az új Dart projekteknél a null-biztonság engedélyezve lesz.

Idegen funkciós interfész

Annak ellenére, hogy a Dart (és a Flutter) a teljes platformok közötti kompatibilitásra összpontosít, még mindig vannak olyan dolgok, amelyeket natív módon kell elvégezni. A natív műveletek megkönnyítése érdekében a Dart rendelkezik egy idegen funkciós felülettel, vagy FFI-vel. Az FFI lehetővé teszi, hogy a Dart C-kódjával kommunikáljon anélkül, hogy furcsa karakterlánc-alapú API-hívásokhoz vagy más nehézkes együttműködési módszerekhez kellene folyamodnia.

A Dart 2.12-vel pedig az FFI stabil, vagyis készen áll a termelési projektekben való használatra, és többnyire teljes körű.

Ezt szem előtt tartva, van néhány változás az FFI-ben, köztük néhány törés.

Ebben a kiadásban a legtöbb hangsúly arra irányult, hogyan használhatók a struktúrák a Dart és a C programokkal. Egyrészt most már átadhat struktúrákat a C-kódban hivatkozás és érték alapján, ahol korábban csak a hivatkozások voltak támogatottak. Egy másik fontos funkció a beágyazott struktúrák támogatása, amely a jelen kiadás előtt nem volt jelen.

Most pedig a döntő változásokról. Ha FFI-t használt, előfordulhat, hogy frissítenie kell a kódot, hogy működjön a 2.12-vel. Az FFI ezen verziójával már nem lehet üres struktúrákat létrehozni. Ha valamilyen okból szüksége van rá, használhatja az új "Opaque" típust. Az FFI beépített funkcióinak működésében is történt néhány változás, amelyet megtehet itt olvashatsz róla.

Végül van egy új csomag az FFI-hez, amely lehetővé teszi FFI-burkolók létrehozását a meglévő C fejlécfájlokból, az ún. ffigen. Ha sok C kódot kell használnia, sok API-módszerrel, ez nagyon hasznos lesz. Még ha a C kód mennyisége kicsi is, ez egy kellemes kényelmi szolgáltatás.


És nagyjából ennyi a Dart 2.12-nél. A null-safety és a stabil C interoperabilitási könyvtár hozzáadásával a Dart egy nagyon funkciókban gazdag nyelvvé válik. Ossza meg velünk, mit gondol a Dart 2.12-ről kommentben!