Nije ferzje fan de programmeartaal Nim 0.20

barde systeem programmeartaal release Nim 0.20.0. De taal brûkt statysk typen en is makke mei Pascal, C++, Python en Lisp yn gedachten. Nim boarnekoade wurdt gearstald yn in C, C ++, of JavaSkript fertsjintwurdiging. Ferfolgens wurdt de resultearjende C/C++-koade kompilearre yn in útfierber bestân mei elke beskikbere kompilator (clang, gcc, icc, Visual C++), wêrtroch jo prestaasjes tichtby C kinne berikke, as jo de kosten fan it útfieren net yn rekken hâlde. de jiskefet. Similar to Python, Nim brûkt ynspringen as blok delimiters. Metaprogrammearring ark en mooglikheden foar it meitsjen fan domein-spesifike talen (DSL's) wurde stipe. Projektkoade levere ûnder de MIT-lisinsje.

De Nim 0.20-release kin beskôge wurde as in kandidaat foar de earste stabile 1.0-release, mei ferskate ynteroperabiliteitsbrekkende wizigingen dy't nedich binne om de earste stabile tûke te foarmjen dy't de steat fan 'e taal ynsette sil. Ferzje 1.0 wurdt touted as in stabile, lange-termyn stipe release dat sil wurde garandearre te behâlden efterút kompatibiliteit yn it stabilisearre diel fan 'e taal. Apart sil de kompilator ek in eksperimintele modus beskikber hawwe wêryn nije funksjes sille wurde ûntwikkele dy't de efterútkompatibiliteit kinne brekke.

Under de wizigingen foarsteld yn Nim 0.20 binne:

  • "Net" is no altyd in unêre operator, d.w.s. útdrukkingen lykas "assert(not a)" binne no net tastien en allinich "assert not a" is tastien;
  • Strikte kontrôles ynskeakele foar konverzje fan heule getallen en echte nûmers yn 'e kompilaasjestadium, d.w.s. de útdrukking "const b = uint16(-1)" sil no resultearje yn in flater, om't -1 kin net konvertearre wurde nei in net-ûndertekene hiel getal type;
  • Unpacking fan tuples foar konstanten en loop fariabelen wurdt foarsjoen.
    No kinne jo bygelyks opdrachten brûke lykas 'const (d, e) = (7, "acht")" en "foar (x, y) yn f";

  • Foarsjoen fan standert inisjalisaasje fan hashes en tabellen. Bygelyks, neidat jo ferklearje "var s: HashSet [int]" kinne jo fuortendaliks útfiere "s.incl (5)", dy't earder late ta in flater;
  • Ferbettere flaterynformaasje foar problemen yn ferbân mei de operator "case" en array-yndeks bûten grinzen;
  • It feroarjen fan de tabellingte by iteraasje is ferbean.

Boarne: opennet.ru

Add a comment