Google je izdal Dart 2.12, novo različico jezika, ki se uporablja za izdelavo aplikacij v Flutterju. Izdaja prihaja skupaj s Flutterjem 2.0.
z izdaja Flutterja 2.0, Google tudi spravlja Dart 2.12 v stabilno stanje. Če niste vedeli, je Dart jezik, ki ga uporablja Flutter. To je jezik, ki temelji na TypeScriptu, vendar ima nekaj dodatkov jezikovnih funkcij, vključno s tistimi, ki jih bom pregledal.
Null Safety
Nična varnost je precej odlična jezikovna funkcija. Prisili vas, da razmislite, ali bo spremenljivka kdaj ničelna, in izrecno obravnava morebitne ničelne situacije, hkrati pa vam omogoča, da zagotovite, da določene spremenljivke nikoli ne bodo ničelne.
V Dart 2.12 je zdaj polna podpora za ničelno varnost s sintakso, podobno Swiftu in Kotlinu. Obstaja celo pametno ulivanje, kjer Dart, če zagotovo ve, da spremenljivka, ki je običajno ničelna, ne more biti ničelna, jo bo implicitno pretvoril v neničelno obliko.
Ker je ničelna varnost (zelo) prelomna sprememba, je ta funkcija opt-in. Če posodobite na Dart 2.12, se vaša kompilacija ne bo pokvarila in ne bo vam treba ure in ure dodajati vsemu namigov o ničnosti. Uporabite lahko celo ničelno varne odvisnosti, če vaš projekt še ni ničelno varen.
Ko se odločite za selitev, lahko uporabite vgrajeno orodje za selitev (dart seliti) in/ali migracijski vodnik da se vse postavi.
Čeprav je ničelna varnost vključena v Dart 2.12, če ustvarite nov projekt Flutter, ničelna varnost ne bo takoj omogočena. Omogočiti ga boste morali ročno. Novi projekti Dart bodo imeli omogočeno ničelno varnost.
Tuji funkcijski vmesnik
Čeprav se Dart (in Flutter) osredotočata na popolno združljivost med platformami, je še vedno nekaj stvari, ki jih je treba narediti doma. Za lažje domače operacije ima Dart tuj funkcijski vmesnik ali FFI. FFI vam omogoča interakcijo s kodo C iz Darta, ne da bi se morali zateči k čudnim klicem API-ja, ki temeljijo na nizih, ali drugim okornim metodam interoperabilnosti.
Z Dart 2.12 je FFI zdaj stabilen, kar pomeni, da je pripravljen za uporabo v proizvodnih projektih in je večinoma popoln.
S tem v mislih je v FFI nekaj sprememb, vključno z nekaj prelomnimi.
Pri tej izdaji je bila večina poudarka na tem, kako je mogoče strukture uporabljati z Dart in C. Prvič, zdaj lahko posredujete strukture v kodi C po sklicu in vrednosti, kjer so bili prej podprti samo sklice. Druga pomembna funkcija je podpora za ugnezdene strukture, ki pred to izdajo ni bila prisotna.
Zdaj pa prelomne spremembe. Če ste uporabljali FFI, boste morda morali posodobiti svojo kodo, da bo delovala z 2.12. S to različico FFI ne morete več ustvarjati praznih struktur. Če ga iz nekega razloga potrebujete, lahko uporabite novo vrsto »Neprozorno«. Obstajajo tudi nekatere spremembe delovanja nekaterih vgrajenih funkcij FFI, ki jih lahko preberite tukaj.
Končno je na voljo nov paket za FFI, ki vam omogoča ustvarjanje ovojev FFI iz obstoječih datotek glave C, imenovan ffigen. Če imate veliko kode C, ki jo morate uporabiti, z veliko metodami API, bo to zelo koristno. Tudi če je količina kode C, ki jo imate, majhna, je to dobra priročna funkcija.
In to je skoraj vse za Dart 2.12. Z dodatkom null-safety in stabilno knjižnico interoperabilnosti C se Dart spreminja v jezik z zelo bogatimi funkcijami. Povejte nam, kaj mislite o Dart 2.12 v komentarjih!