Lëshimi i kompilatorit të gjuhës D 2.100

Zhvilluesit e gjuhës së programimit D publikuan lëshimin e kompilatorit të standardit DMD 2.100.0, i cili mbështet sistemet GNU/Linux, Windows, macOS dhe FreeBSD. Kodi i kompilatorit shpërndahet nën licencën e lirë BSL (Boost Software License).

Gjuha D pĂ«rdor tipizimin statik, ka njĂ« sintaksĂ« tĂ« ngjashme me C/C++, dhe ofron performancĂ«n e gjuhĂ«ve tĂ« kompozuara, duke pĂ«rfituar nga disa mundĂ«si tĂ« dobishme tĂ« gjuhĂ«ve dinamike nĂ« fushĂ«n e efikasitetit tĂ« zhvillimit dhe sigurisĂ«. PĂ«r shembull, ofrohet mbĂ«shtetje pĂ«r tabela asociative, pĂ«rcaktim tĂ« Indirekt tĂ« tipeve, menaxhim automatik tĂ« memories, mjete pĂ«r programim paralel, njĂ« mbledhĂ«s plehrash opsional, njĂ« sistemæšĄæżĆĄash, komponentĂ« pĂ«r metaprogramim, mundĂ«sinĂ« pĂ«r tĂ« pĂ«rdorur biblioteka nĂ« gjuhĂ«n C, si dhe disa biblioteka nĂ« C++ dhe Objective-C.

Ndryshimet në publikimin e ri përfshijnë:

  • MbĂ«shtetja pĂ«r stilin e vjetĂ«r tĂ« mbingarkesĂ«s sĂ« operatorĂ«ve, e pĂ«rdorur nĂ« degĂ«n D1, Ă«shtĂ« ndaluar. NĂ« vend tĂ« opNeg, opAdd_r, opAddAssign etj. tani pĂ«rdoren opUnary, opBinary, opBinaryRight dhe opOpAssign. Stili i vjetĂ«r i mbingarkesĂ«s sĂ« operatorĂ«ve u shpall i vjetruar nĂ« vitin 2019, dhe duke filluar nga lĂ«shimi 2.100, do tĂ« çojĂ« nĂ« shfaqjen e njĂ« gabimi.
  • MbĂ«shtetja pĂ«r fjalĂ«n kyç delete Ă«shtĂ« ndaluar, duke u shpallur e vjetruar qĂ« nga viti 2018. NĂ« vend tĂ« delete, duhet tĂ« pĂ«rdoret funksioni destroy ose core.memory.__delete.
  • ËshtĂ« implementuar njĂ« atribut i ri @mustuse, i cili mund tĂ« aplikohet nĂ« typer struct dhe union si njĂ« metodĂ« alternative pĂ«r trajtimin e gabimeve, kur nĂ« kod nuk Ă«shtĂ« e mundur pĂ«rdorimi i pĂ«rjashtimeve (pĂ«r shembull, nĂ« blloqet @nogc). NĂ«se shprehja e shĂ«nuar me atributin @mustuse nuk pĂ«rdoret nĂ« kod, kompilatorja do tĂ« JapĂ« njĂ« gabim.
  • PĂ«r arrays statike Ă«shtĂ« lejuar pĂ«rdorimi i pronĂ«s ‘.tupleof’ pĂ«r tĂ« marrĂ« njĂ« sekuencĂ« vlerash (lvalue) pĂ«r çdo element tĂ« array-t. void foo(int, int, int) { /* 
 */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // e barabartĂ« me foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // njĂ« caktim i thjeshtĂ« fa = ia shkakton njĂ« gabim assert(fa == [1F, 2F, 3F]);

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster