D-språkkompilatorversion 2.100

Utvecklarna av programmeringsspråket D presenterade utgåvan av huvudreferenskompilatorn DMD 2.100.0, som stöder GNU/Linux, Windows, macOS och FreeBSD-system. Kompilatorkoden distribueras under gratis BSL (Boost Software License).

D är statiskt typad, har en syntax som liknar C/C++ och ger prestanda för kompilerade språk, samtidigt som det lånar några av utvecklingseffektiviteten och säkerhetsfördelarna med dynamiska språk. Till exempel ger det stöd för associativa arrayer, typinferens, automatisk minneshantering, parallellprogrammering, en valfri skräpsamlare, ett mallsystem, metaprogrammeringskomponenter, möjligheten att använda C-bibliotek och vissa C++- och Objective-C-bibliotek.

Bland ändringarna i den nya utgåvan:

  • Den gamla stilen av operatörsöverbelastning som användes i D1-grenen har upphört. Ersätter opNeg, opAdd_r, opAddAssign, etc. kom opUnary, opBinary, opBinaryRight och opOpAssign. Den gamla stilen av operatörsöverbelastning fasades ut 2019 och kommer att ge ett fel från och med release 2.100.
  • Sökordet ta bort har fasats ut sedan 2018. Istället för att ta bort bör du använda funktionen destroy eller core.memory.__delete.
  • Ett nytt @mustuse-attribut har implementerats som kan appliceras på struct- och unionstyper som en alternativ metod för felhantering när koden inte kan hantera undantag (till exempel i @nogc-block). Om ett uttryck markerat med @mustuse-attributet inte används i kod, kommer kompilatorn att generera ett fel.
  • För statiska arrayer tillåts användningen av egenskapen ".tupleof" för att erhålla sekvensen av värden (lvalue) för varje element i arrayen. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analog foo(1, 2, 3); flyta[3] fa; fa.tupleof = ia.tupleof; // enkel tilldelning fa = ia resulterar i en felpåstående(fa == [1F, 2F, 3F]);

Källa: opennet.ru

Lägg en kommentar