የፕሮግራም አወጣጥ ቋንቋ Haxe 4.1

ይገኛል የመሳሪያ ስብስብ መለቀቅ ሃክስ 4.1, ይህም ባለ ብዙ ፓራዳይም ከፍተኛ ደረጃ ፕሮግራሚንግ ቋንቋን ከጠንካራ ትየባ ጋር፣ መስቀል አቀናባሪ እና መደበኛ የተግባር ቤተ-መጽሐፍትን ያካትታል። ኘሮጀክቱ ወደ C++፣ HashLink/C፣ JavaScript፣ C#፣ Java፣ PHP፣ Python እና Lua እንዲሁም JVM፣ HashLink/JIT፣ Flash እና Neko ባይትኮድ ማጠናቀር፣ የእያንዳንዱን የዒላማ መድረክ ተወላጅ አቅም ማግኘትን ይደግፋል። የማጠናከሪያ ኮድ የተሰራጨው በ በ GPLv2 ፍቃድ እና ለሃክ የተሰሩ መደበኛ ቤተ-መጽሐፍት እና ምናባዊ ማሽኖች HashLink и ኔኮ በ MIT ፍቃድ.

ቋንቋ ነው። መግለጫ-ተኮር በጠንካራ ትየባ. ነገር-ተኮር፣ አጠቃላይ እና ተግባራዊ የፕሮግራም ቴክኒኮች ይደገፋሉ። Haxe አገባብ ወደ ECMAScript እና ቅርብ ነው። ያሰፋል እንደ የማይንቀሳቀስ ትየባ፣ አውቶታይፕ ኢንፈረንስ፣ የስርዓተ ጥለት ማዛመድ፣ ጀነሬክቶች፣ ተደጋጋሚ ለ loops፣ AST ማክሮዎች፣ GADT (አጠቃላይ የአልጀብራ የውሂብ አይነቶች)፣ የአብስትራክት አይነቶች፣ የማይታወቁ አወቃቀሮች፣ ቀላል የአደራደር ፍቺዎች፣ ሁኔታዊ የማጠናቀር መግለጫዎች፣ ሜታዳታን ከመስኮዎች ጋር ማያያዝ ፣ ክፍሎች እና አገላለጾች፣ የሕብረቁምፊ ግንኙነት ("ስሜ $ ስም ነው")፣ ግቤቶችን ይተይቡ ('አዲስ ዋና ("ፎ") እና ብዙ ተጨማሪ.

የክፍል ሙከራ {
የማይንቀሳቀስ ተግባር ዋና() {
የመጨረሻ ሰዎች =
"ኤልዛቤት" => "ፕሮግራም",
"ኢዩኤል" => "ንድፍ"
];

ለ (ስም => በሰዎች ውስጥ ሥራ) {
መከታተያ('$ ስም ለኑሮ $ ስራ ይሰራል!');
}
}
}

በስሪት 4.1 ውስጥ አዲስ ባህሪያት:

  • የታከለ የጅራት ድግግሞሽ ማመቻቸት።
  • ለየት ያለ አያያዝ አዲስ የተዋሃደ ኤፒአይ ታክሏል።
  • ግንባታው "ሞክሩ {} ያዙ (e) {}" እንደ አጭር እጅ ተፈቅዶለታል "ሞክሩ {} catch(e: haxe.Exception) {}"።
  • ለኤቫል አስተርጓሚ የኤስኤስኤል ድጋፍ ታክሏል።
  • ኢላማው JVM ከአሁን በኋላ እንደ ሙከራ ተደርጎ አይቆጠርም።
  • ለቋንቋ አገልጋይ ፕሮቶኮል “Goto ትግበራ” እና “ማጣቀሻዎችን ፈልግ” ተግባራት ድጋፍ ታክሏል።
  • በተፈጠረ ኮድ ውስጥ የተሻሻለ ጊዜያዊ የአካባቢ ተለዋዋጮች ስያሜ። ተደጋጋሚ "መመለስ" ተወግዷል; ያለ መመለሻ እሴት በቀስት ተግባራት።
  • የመዳረሻ ጥምሮች (ማግኘት፣ ነባሪ) በመስኮች ላይ ተፈቅዶላቸዋል (getter ብቻ፣ ነባሪ የምደባ ባህሪ)።
  • ለሜዳዎች መጨመር እና ኦፕሬተሮችን መቀነስ ፍቀድ ረቂቅ ዓይነቶች.
  • ማንነታቸው ያልታወቁ ድግግሞሾችን በመጠቀም ለ loops የውስጥ ለውስጥ የተሻሻለ።
  • js፡ የተሻሻለ StringMap ትግበራ ለES5።
  • js: የሌዘር ተለዋዋጮችን ማመንጨት ወደ ማቀናበሪያ አማራጭ "-D js-es=6" ተጨምሯል፣ የES6 ክፍሎች ማመንጨት ተሻሽሏል።
  • lua: "StringIterator" ተመቻችቷል፣ የስህተት አያያዝ ተሻሽሏል።
  • php: የተመቻቸ "Std.isOfType" ለመሠረታዊ ዓይነቶች።
  • php: የመነጩ ድርድሮች አሁን ቤተኛ በይነገጾችን “ኢተሬተር”፣ “ኢቴሬተርአግግሬጌት”፣ “ሊቆጠር የሚችል” ይተገብራሉ።
  • cs፡ ታክሏል ሜታዳታ "@: assemblyMeta" እና "@: assemblyStrict"።
  • python፡- ማንነታቸው ለሌላቸው ነገሮች የ"__contains__" ተጨምሯል።
    እና "__getitem__"፣ ይህም በተፈጠረው ኮድ ውስጥ እንደ መዝገበ ቃላት ሆነው እንዲያገለግሉ ያስችላቸዋል።

  • jvm፡ ቁሶች እንደ ስም-አልባ አወቃቀሮች ጥቅም ላይ በሚውሉበት ጊዜ (ተለዋዋጭ የንብረት ፍለጋ ተከልክሏል) በአዲስ መንገድ የተተየቡ ተግባራትን ለማግኘት እና ተጨማሪ በይነገጾችን በማፍለቅ አፈጻጸም በከፍተኛ ደረጃ የተሻሻለ ነው።
    የፕሮግራም አወጣጥ ቋንቋ Haxe 4.1

በመደበኛ ቤተ-መጽሐፍት ውስጥ ማሻሻያዎች:

  • የ"Array.contains" ተግባር ታክሏል።
  • "Array.keyValueIterator" ተጨምሯል ፣ እሱም የቁልፍ እሴት ድግግሞሹን ለድርድር ተግባራዊ ያደርጋል ("ለ(ቁልፍ= በድርድር ውስጥ ያለው እሴት)"))።
  • የታከለ የእገዳ አይነት "haxe.Constraints.NotVoid"።
  • የ "findIndex" እና "foldi" ተግባራት ወደ "Lambda" ክፍል ተጨምረዋል.
  • የተተገበረ "የአደራደር መዳረሻ" (በ"arr[i]") እና የ"haxe.ds.HashMap" ቁልፍ እሴት መደጋገም።
  • jvm፡ ተተግብሯል JVM-ተኮር የ"StringMap"፣ "sys.thread.Lock"፣ "sys.thread.string" ስሪቶች።
  • java/jvm፡ ያገለገሉ የ"MD5"፣ "SHA-1" እና "SHA-256" ለ"haxe.crypto" ሞጁሎች ቤተኛ ትግበራዎች።
  • ማክሮ፡ ታክሏል "haxe.macro.Context.containsDisplayPosition(POS)"።
  • nullsafety: "ጥብቅ" ሁነታ አሁን እንደ ነጠላ ክር ይታከማል; ታክሏል "StrictThreaded" ሁነታ.
  • "Std.is" ለ"Std.isOfType" ድጋፍ ተቋርጧል።
  • በመዝጊያዎች ውስጥ ያለ እሴቶች የአካባቢ ተለዋዋጮችን ሲጠቀሙ ማስጠንቀቂያ ታክሏል።
  • js: "ያልተተየበ __js__(code, args)" ተቋርጧል፣ በ"js.Syntax.code(code, args)" ተተክቷል።
  • php/neko: "neko.Web" እና "php.Web" ተቋርጠዋል እና በኋላ ወደ "hx4compat" ቤተ-መጽሐፍት ይወሰዳሉ.

በሚቀጥለው እትም ተብሎ ታቅዷል:

  • የጥቅል አስተዳዳሪ ማሻሻያዎች haxelib.
  • ያልተመሳሰለ ስርዓት ኤፒአይ ላይ የተመሰረተ ሊቡቭ.
  • ኮሮቲንስ
  • ክፍሎችን ሳይፈጥሩ ሞዱላር የማይንቀሳቀሱ ተግባራትን እና ተለዋዋጮችን ማወጅ (ቀድሞውንም በምሽት ግንባታዎች ውስጥ ይገኛል)።

ምንጭ: opennet.ru

አስተያየት ያክሉ