Haxe 4.2 програмчлалын хэлийг гаргасан

Haxe 4.2 хэрэгслийн иж бүрдэл нь бэлэн байгаа бөгөөд үүнд хүчтэй бичвэр, хөндлөн хөрвүүлэгч, функцүүдийн стандарт номын сан бүхий ижил нэртэй олон парадигмын өндөр түвшний програмчлалын хэл багтсан болно. Төсөл нь C++, HashLink/C, JavaScript, C#, Java, PHP, Python болон Lua хэл рүү орчуулах, түүнчлэн JVM, HashLink/JIT, Flash болон Neko байт код руу хөрвүүлэх, зорилтот платформ бүрийн эх боломжуудыг ашиглах боломжийг олгодог. Хөрвүүлэгчийн кодыг GPLv2 лицензийн дагуу түгээдэг бөгөөд стандарт номын сан болон Haxe-д зориулан боловсруулсан HashLink, Neko виртуал машинууд нь MIT лицензийн дагуу лицензтэй.

Хэл нь илэрхийлэлд чиглэсэн, хүчтэй бичих чадвартай. Объект хандалтат, ерөнхий болон функциональ програмчлалын техникийг дэмждэг. Haxe-ийн синтакс нь ECMAScript-тэй ойролцоо бөгөөд статик бичих, автоматаар төрөл гаргах, загвар тааруулах, ерөнхий, давталт дээр суурилсан давталт, AST макро, GADT (Ерөнхий алгебрийн өгөгдлийн төрлүүд), хийсвэр төрлүүд, нэргүй бүтэц, хялбаршуулсан зэрэг функцээр өргөтгөсөн. Тодорхойлолтын массивууд, нөхцөлт эмхэтгэлд зориулсан илэрхийллүүд, талбар, ангиуд болон илэрхийлэлд мета өгөгдлийг хавсаргах, мөрийн интерполяци ('Миний нэр $name'), төрлийн параметрүүд ('шинэ Үндсэн (“foo”)') болон бусад олон. анги Тест { статик функц үндсэн() { эцсийн хүмүүс = [ "Элизабет" => "Програмчлал", "Жоел" => "Дизайн" ]; for (нэр => хүмүүсийн дотор ажил) { trace('$name нь $ ажил хийдэг!'); } } }

4.2 хувилбарын шинэ боломжууд:

  • Статик хувьсагч болон функцуудыг ангид оруулах шаардлагагүйгээр модулийн түвшинд зарлах.
  • "Сонгодог" хийсвэр анги, функцийг дэмжих.
  • Бүх зорилтот платформуудад (haxe.Rest) вариадик функцүүдийн эх хувилбар болон аргумент өргөтгөх оператор “f(...массив)” нэмэгдсэн.
  • Хувь хүний ​​хэлхээнд зориулсан үйл явдлын циклийг хэрэгжүүлэх (“sys.thread.Thread.events”).
  • Төрөл/талбарын баримт бичгийг өвлөхөд зориулсан "@:inheritDoc" мета өгөгдөл.
  • Бүх зорилтот платформ дээрх гадны аргуудыг хэт ачаалах арга.
  • "@:forward.new" мета өгөгдлийг ашиглан түүний төрлөөр үүсгэгчийг хийсвэр рүү шилжүүлж байна.
  • "haxe.macro.Expr"-д "EIs" байгуулагчийг нэмсэн.
  • "@:forward.variance"-аар хийсвэр төрлийн хувилбар хийх чадвар.
  • Хувилбарыг нэгтгэх үед "Аль ч" төрлийг "Динамик" гэж төлөөлдөг.
  • "haxe.exceptions" багцад зарим үндсэн үл хамаарах төрлийг нэмсэн.
  • Хувьсагчийг зарлахдаа мета өгөгдлийг хавсаргах дэмжлэг.
  • "StringTools.unsafeCharAt" функцийг мөрийг давтахад ашигладаг.
  • eval (тайлбарлагч): "eval.luv" багц дахь "libuv"-д холбоос нэмсэн.
  • eval: "eval.integers" багцаар дамжуулан "Int64" болон "UInt64"-ийн эх хувилбаруудтай холбох.
  • cs: UDP залгуурын хэрэгжилт.
  • cs: C# кодыг мөр оруулахад зориулсан "cs.Syntax" модуль.
  • jvm: Динамик кодын үүсгэсэн оновчлолын тоог хянахын тулд “-D jvm.dynamic-level=x” тугийг нэмсэн. 0 = аль нь ч биш, 1 = талбарыг унших/бичих оновчлол, 2 = эмхэтгэх үед аргын хаалт.
  • java, jvm: "--java-lib <директор>" тугийг дэмжих.
  • python: threading API хэрэгжилт.

Ерөнхий сайжруулалтууд:

  • "expr is SomeType" нь хаалтанд боох шаардлагагүй.
  • "@:using" төрлийн өргөтгөлүүдийн тэргүүлэх ач холбогдол нэмэгдсэн.
  • "Super"-ээр дамжуулан статик төрлийн өргөтгөлүүдийг ашиглахыг зөвшөөрдөг.
  • "@: noDoc" талбарт мета өгөгдлийг тохируулах чадвар.
  • "Газрын зураг" хийсвэр төрлийг шилжилт хөдөлгөөнтэй болгосон.
  • Тоон үүсгэгч дээрх "@:native"-г дэмжих.
  • Төрөл мэдэгдэл ("typedefs") дээр "@: ашиглах"-ыг дэмжих.
  • Олон мөрийн алдаа нь дараагийн мөрүүдийн угтвар болгон "..."-г ашигладаг.
  • Төрөл дүгнэлтийг дахин боловсруулж, нэргүй бүтэц нь тодорхой төрөлд илүү сайн хөрвүүлэгдсэн бөгөөд функц дуусахад "хаагдсан".
  • Аргументгүй функцүүдийн төрлийг "Хүчингүй->..." биш "()->..." гэж дүгнэж байна.
  • "Функц" түлхүүр үгийг багцын нэрээр зөвшөөрдөг.
  • Объектуудын доторлогоог сайжруулсан.
  • cs: .NET 5.0-д зориулсан дэмжлэг нэмэгдсэн.
  • cpp: Гадаад ангиудад зориулсан эх бүтээгчдийг дэмжих.
  • php: Эх массивыг зарлахын тулд "php.Syntax.customArrayDecl" нэмсэн.
  • php: Төрөл бүрийн функц, ангиудын гадаад аргуудыг шинэчилсэн.
  • php: Нэргүй бүтцийн оновчтой хэрэгжилт.
  • hl: Хэрэв модульд өөрчлөлт ороогүй бол эмхэтгэлийг алгасах.
  • lua: json-г задлан шинжлэхийн тулд "hx-lua-simdjson"-г ашиглаж байна.
  • jvm: "sys.thread.Lock" хэрэгжүүлэлт дэх CPU-ийн ачааллыг бууруулсан.
  • js: Google Closure Compiler-тэй нийцтэй байдал сайжирсан.
  • Null Safety: Хувьсагчийг зарлахдаа "@:nullSafety(Off)"-г анхаарч үзээрэй: "var @:nullSafety(Off) v".

Мөн VSCode засварлагчийн нэмэлтийг хөрвүүлэгчийн шинэ хувилбарт шинэчилсэн бөгөөд үүнд интерфэйсийн алга болсон талбарууд, энгийн болон хийсвэр ангиуд, өмчийн аргуудыг бий болгох зөвлөмжүүд гарч ирэв.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх