د پروګرامینګ ژبې خوشې کول Haxe 4.0

موجود د وسیلې خوشې کول هیکس 4.0، کوم چې د ورته نوم څو اړخیزه لوړې کچې برنامې ژبه د قوي ټایپ کولو سره ، یو کراس کمپیلر او د دندو معیاري کتابتون شامل دي. پروژه C++، HashLink/C، JavaScript، C#، Java، PHP، Python او Lua ته د ژباړې ملاتړ کوي، په بیله بیا JVM، HashLink/JIT، Flash او Neko bytecode ته د هر هدف پلیټ فارم اصلي وړتیاو ته د لاسرسي سره. د کمپیلر کوډ لخوا توزیع شوی د GPLv2 جواز لاندې، او یو معیاري کتابتون او یو مجازی ماشین د Haxe لپاره جوړ شوی نیکو د MIT جواز لاندې.

ژبه ده د بیان پر بنسټ د قوي ټایپ کولو سره. د اعتراض پر بنسټ، عمومي او فعال پروګرام کولو مفکورې ملاتړ کیږي.
د هیکس ترکیب ECMAScript ته نږدې دی او پراخوي د دې ځانګړتیاوې لکه جامد ټایپ کول، د آټوټایپ انفرنس، د نمونو میچ کول، جنریک، د لوپس لپاره تکرار پر بنسټ، AST میکروز، GADT (عمومي الجبریک ډیټا ډولونه)، خلاص ډولونه، نامعلوم جوړښتونه، ساده سري تعریفونه، مشروط تالیف بیانونه، د ساحې میټاډاټاډا سره ضمیمه کول , ټولګي او اظهارات، د تار انټرپولیشن ('زما نوم $ نوم دی')، ډول پارامترونه ("نوی مین‹سټرینګ›('foo')")، او ډیر څه.

ټولګي ازموینه {
جامد فعالیت اصلي() {
var خلک = [
"الیزابت" => "پروګرام کول"
"جویل" => "ډیزاین"
];

for (name in people.keys()) {
var دنده = خلک [نوم]؛
trace('$name د ژوند لپاره $ دنده ترسره کوي!');
}
}
}

اصلي نوښتونه 4.0 نسخه:

  • د "String->Int->Bool" پرځای "(نوم:String، age:Int)->Bool" یا "(String, Int)->Bool" د فنکشن ډول مشخص کولو لپاره نوی ترکیب.
  • د تیر فنکشن ترکیب "(a, b) -> a + b" د "function(a, b) بیرته a + b" پرځای دی.
  • د نول ارزښتونو کارولو سره تړلې ستونزې پروړاندې محافظت (تجرباتي ځانګړتیا، په اختیاري توګه د ځانګړو برخو، ټولګیو یا کڅوړو لپاره فعاله شوې).
  • د "وروستي" کلیدي کلمه د ټولګي ساحو او محلي متغیرونو لپاره ده چې نه بدلیدونکي دي. "حتمی" د دندو تعریف کولو لپاره هم کارول کیدی شي ترڅو د میراث لخوا د دوی له مینځه وړلو څخه مخنیوی وشي او د ټولګیو/انټرفیسونو لپاره چې میراث نشي کیدی.
  • ملاتړ د نیکو پرته په ټولو تالیف اهدافو کې د اساس ډول "سټرینګ" لپاره د یونیکوډ معیار.
  • جوړ شوی ژباړونکی له سکریچ څخه بیا لیکل شوی، کوم چې اوس د نوم لاندې راځي ایوال. د نوي ژباړونکي څخه مننه، سکریپټونه او میکرو ډیر چټک چلیږي. د متقابل ډیبګ کولو حالت ملاتړ شوی.
  • د تالیف لپاره نوی هدف سیسټم (هدف) هشلینک - د لوړ فعالیت رن ټایم په ځانګړي ډول د هیکس لپاره ډیزاین شوی ، د JIT یا C لپاره بایټکوډ ته د تالیف ملاتړ کوي ، د C سره اسانه ادغام لري ، په بیله بیا د ټیټ کچې شمیرې ډولونو او پوائنټرونو ته لاسرسی.
  • نوی JVM هدف - تاسو ته اجازه درکوي د جاوا کوډ تالیف کولو مرحلې پریښودو سره د "-D jvm" بیرغ اضافه کولو سره jvm بایټکوډ رامینځته کړئ کله چې په جاوا کې په نښه کول.
  • د زنګ وهلو فنکشنونو یا جوړونکو په نقطه کې د انلاین ځای په ځای کولو وړتیا، حتی که دوی ورته اعلان شوي نه وي.
  • د شمولیت امکان جامد غزول کله چې د "@:using(path.ToExtension)" په کارولو سره یو ډول (لکه "enum") اعلان کړئ.
  • د خلاصې ډولونه اوس د "obj.foo = bar" څرګندونو بیا پورته کولو لپاره د "@:op(ab)" آپریټر د "سیټ" نسخه ملاتړ کوي.
  • د "لپاره" لوپ ترکیب اوس د کلیدي ارزښت تکرار ملاتړ کوي: "د (کیلي => په ټولګه کې ارزښت) {}".
  • په څرګندونو کې د xml په څیر مارک اپ کارولو لپاره ملاتړ: "var a = ‹hi/›؛". د اوس لپاره، دا خصوصیت یوازې د میکرو سره د پارس کولو لپاره شتون لري او د ډیزاین مرحله کې ده.
  • د نامعلوم جوړښت ډولونو په "بشپړ" یادښت کې د اختیاري ساحو لپاره ترکیب دا دی: "{ var ?f:Int; }" (د لنډ "{?f:Int }" بدیل).
  • د اینوم ارزښتونه اوس د فنکشن دلیلونو لپاره ډیفالټ ارزښتونه کیدی شي: "فنکشن foo‹T›(اختیار: اختیار‹T> = هیڅ نه)".
  • د "enum خلاص نوم(BasicType) {}" نحو نور په "enum" کې "@:" مخکینۍ ته اړتیا نلري.
  • د خلاصې شمیرنې لپاره اتومات شمیره:

    enum abstract Foo(Int) {
    var A; // 0
    var B; // 1
    }
    د اینوم خلاصې بار (سټرینګ) {
    var A; // "ا"
    var B; // "ب"
    }

  • "بهرنۍ" کلیمه نور د "@:" مخکیني کارولو ته اړتیا نلري.
  • اختیار لرې کړ "تطبیقونه متحرک" د تارونو له لارې د ټولګي ساحو ته د لاسرسي لپاره. د بهرني ټولګیو لپاره یا د خلاصې ډول لخوا پلي کولو له لارې شتون لري.
  • د ډول تقاطع لپاره د "A او B" ترکیب اضافه شوی، کوم چې اوس مهال یوازې په نامعلوم جوړښتونو او ډول پارامیټر محدودیتونو باندې پلي کیږي. پخوانی خنډ ترکیب لیرې شوی دی.
  • د خالي "نقشه" مثالونه رامینځته کول د نحو له لارې شتون لري "var map:Map‹Int, String› = [];" د صف په شان.
  • د ډیټا جوړښت "haxe.ds.ReadOnlyArray" اضافه شوی.
  • میټاډاټا اوس د نوم ځایونه لري ("@:prefix.name function() {…}"). په ورته ډول د تعریفونو سره: "#if (some.flag ... #end".
  • د IDEs لپاره نوی خدمت پروتوکول کارول کیږي د VSCode لپاره پلگ ان.
  • د ویب APIs لپاره بهرني تعریفونه (بهرني) تازه شوي او ورک شوي اضافه شوي.

سرچینه: opennet.ru

Add a comment