Bol vydaný Dart 2.12 s nulovou bezpečnosťou a C interoperabilitou

Google vydal Dart 2.12, novú verziu jazyka používaného na vytváranie aplikácií vo Flutter. Vydanie prichádza spolu s Flutter 2.0.

S vydanie Flutter 2.0Google tiež prináša Dart 2.12 do stabilnej podoby. V prípade, že by ste nevedeli, Dart je jazyk, ktorý Flutter používa. Je to jazyk založený na TypeScript, ale prichádza s niektorými doplnkami jazykových funkcií vrátane tých, ktoré sa chystám prejsť.

Nulová bezpečnosť

Nulová bezpečnosť je celkom skvelá jazyková funkcia. Núti vás zvážiť, či premenná bude niekedy nulová, a explicitne sa vysporiadať s potenciálnymi nulovými situáciami, pričom vám tiež umožňuje zaručiť, že konkrétne premenné nebudú nikdy nulové.

V Dart 2.12 je teraz plná podpora null-safety so syntaxou podobnou Swift a Kotlin. Existuje dokonca aj inteligentné pretypovanie, kde ak Dart s istotou vie, že normálne nulovateľná premenná nemôže byť nulová, implicitne ju pretypuje do nenulovateľnej formy.

Keďže nulová bezpečnosť je (veľmi) prelomová zmena, táto funkcia je voliteľná. Ak aktualizujete na Dart 2.12, vaša kompilácia sa nezlomí a nebudete musieť tráviť hodiny pridávaním tipov na nulovanie ku všetkému. Môžete dokonca použiť null-safe závislosti, ak váš projekt ešte nie je null-safe.

Keď sa rozhodnete pre migráciu, môžete použiť vstavaný nástroj na migráciu (šípka migrovať) a/alebo sprievodca migráciou aby bolo všetko nastavené.

Aj keď je nulová bezpečnosť zahrnutá v Dart 2.12, ak vytvoríte nový projekt Flutter, nulová bezpečnosť nebude povolená hneď po vybalení. Budete ho musieť povoliť manuálne. Nové projekty Dart budú mať povolenú nulovú bezpečnosť.

Rozhranie cudzích funkcií

Aj keď sa Dart (a Flutter) zameriava na plnú kompatibilitu medzi platformami, stále existujú veci, ktoré je potrebné urobiť natívne. Na uľahčenie natívnych operácií má Dart rozhranie cudzích funkcií alebo FFI. FFI vám umožňuje komunikovať s kódom C od Dart bez toho, aby ste sa museli uchýliť k podivným volaniam API založeným na reťazcoch alebo iným neohrabaným metódam interoperability.

A s Dart 2.12 je FFI teraz stabilný, čo znamená, že je pripravený na použitie v produkčných projektoch a je väčšinou kompletný.

S ohľadom na to existujú určité zmeny v FFI, vrátane niekoľkých zlomových.

Väčšina pozornosti tohto vydania bola zameraná na to, ako je možné použiť štruktúry s Dart a C. Po prvé, teraz môžete v kóde C odovzdávať štruktúry podľa odkazu a hodnoty, kde boli predtým podporované iba odkazy. Ďalšou dôležitou vlastnosťou je podpora pre vnorené štruktúry, ktorá pred týmto vydaním nebola.

Teraz k zlomovým zmenám. Ak ste používali FFI, možno budete musieť aktualizovať svoj kód, aby fungoval s verziou 2.12. S touto verziou FFI už nemôžete vytvárať prázdne štruktúry. Ak ho z nejakého dôvodu potrebujete, môžete použiť nový typ „Nepriehľadný“. Existuje tiež niekoľko zmien v tom, ako fungujú niektoré vstavané funkcie FFI, ktoré môžete čítajte tu.

Nakoniec je tu nový balík pre FFI, ktorý vám umožňuje generovať obaly FFI z existujúcich hlavičkových súborov C, tzv. ffigen. Ak máte veľa kódu C, ktorý musíte použiť, s množstvom metód API, bude to veľmi užitočné. Aj keď je množstvo kódu C malé, je to príjemná funkcia pohodlia.


A to je takmer všetko pre Dart 2.12. S pridaním nulovej bezpečnosti a stabilnej knižnice interoperability C sa Dart mení na jazyk s veľmi bohatými funkciami. Dajte nám vedieť, čo si myslíte o Dart 2.12 v komentároch!