நிரலாக்க மொழியின் வெளியீடு Haxe 4.0

கிடைக்கும் கருவித்தொகுப்பு வெளியீடு ஹேக்ஸ் 4.0, வலுவான தட்டச்சு, குறுக்கு-தொகுப்பான் மற்றும் செயல்பாடுகளின் நிலையான நூலகத்துடன் அதே பெயரில் பல முன்னுதாரண உயர்-நிலை நிரலாக்க மொழி அடங்கும். இந்தத் திட்டம் C++, HashLink/C, JavaScript, C#, Java, PHP, Python மற்றும் Lua ஆகியவற்றிற்கான மொழிபெயர்ப்பை ஆதரிக்கிறது, மேலும் ஒவ்வொரு இலக்கு தளத்தின் சொந்த திறன்களுக்கான அணுகலுடன் JVM, HashLink/JIT, Flash மற்றும் Neko பைட்கோட் ஆகியவற்றிற்கான தொகுப்பையும் ஆதரிக்கிறது. கம்பைலர் குறியீடு வழங்கியது GPLv2 உரிமத்தின் கீழ், ஒரு நிலையான நூலகம் மற்றும் Haxe க்காக உருவாக்கப்பட்ட ஒரு மெய்நிகர் இயந்திரம் பார்பி MIT உரிமத்தின் கீழ்.

மொழி என்பது வெளிப்பாடு சார்ந்த வலுவான தட்டச்சு மூலம். பொருள் சார்ந்த, பொதுவான மற்றும் செயல்பாட்டு நிரலாக்க கருத்துக்கள் ஆதரிக்கப்படுகின்றன.
Haxe தொடரியல் ECMAScript மற்றும் விரிவடைகிறது நிலையான தட்டச்சு, தன்னியக்க அனுமானம், பேட்டர்ன் மேட்சிங், ஜெனரிக்ஸ், லூப்களுக்கான ஐடிரேட்டர் அடிப்படையிலானது, AST மேக்ரோக்கள், GADT (பொதுவாக்கப்பட்ட இயற்கணித தரவு வகைகள்), சுருக்க வகைகள், அநாமதேய கட்டமைப்புகள், எளிமைப்படுத்தப்பட்ட வரிசை வரையறைகள், மெட்டாடேட்டாவை இணைக்கும் களத்தில் நிபந்தனை தொகுத்தல் வெளிப்பாடுகள் போன்ற அதன் அம்சங்கள் , வகுப்புகள் மற்றும் வெளிப்பாடுகள், சரம் இடைச்செருகல் ('என் பெயர் $பெயர்'), வகை அளவுருக்கள் ("புதிய மெயின்‹ஸ்ட்ரிங்›('foo')"), மற்றும் இன்னும் அதிகம்.

வகுப்பு தேர்வு {
நிலையான செயல்பாடு முக்கிய() {
var மக்கள் = [
"எலிசபெத்" => "நிரலாக்கம்",
"ஜோயல்" => "வடிவமைப்பு"
];

(people in people.keys()) {
var வேலை = மக்கள் [பெயர்];
ட்ரேஸ் ('$பெயர் வாழ்க்கைக்காக $ வேலை செய்கிறது!');
}
}
}

முக்கிய புதுமைகள் பதிப்பு 4.0:

  • "ஸ்ட்ரிங்->இன்ட்->பூல்" என்பதற்குப் பதிலாக "(பெயர்:ஸ்ட்ரிங், வயது:இன்ட்)->பூல்" அல்லது "(ஸ்ட்ரிங், இன்ட்)->பூல்" என்ற செயல்பாட்டு வகையைக் குறிப்பிடுவதற்கான புதிய தொடரியல்.
  • அம்பு செயல்பாடு தொடரியல் என்பது "(a, b) -> a + b" என்பதற்கு பதிலாக "function(a, b) return a + b" ஆகும்.
  • பூஜ்ய மதிப்புகளின் பயன்பாட்டுடன் தொடர்புடைய சிக்கல்களுக்கு எதிரான பாதுகாப்பு (சோதனை அம்சம், குறிப்பிட்ட புலங்கள், வகுப்புகள் அல்லது தொகுப்புகளுக்கு விருப்பமாக இயக்கப்பட்டது).
  • "இறுதி" முக்கிய வார்த்தையானது கிளாஸ் புலங்கள் மற்றும் மாறாத உள்ளூர் மாறிகளுக்கானது. "இறுதி" என்பது பரம்பரை மூலம் மேலெழுதப்படுவதைத் தடுக்க செயல்பாடுகளை வரையறுக்கவும் மற்றும் மரபுரிமையாகப் பெற முடியாத வகுப்புகள்/இடைமுகங்களுக்கும் பயன்படுத்தப்படலாம்.
  • ஆதரவு Neko தவிர அனைத்து தொகுப்பு இலக்குகளிலும் அடிப்படை வகை "ஸ்ட்ரிங்" க்கான யூனிகோட் தரநிலை.
  • உள்ளமைக்கப்பட்ட மொழிபெயர்ப்பாளர் புதிதாக மீண்டும் எழுதப்பட்டது, இது இப்போது பெயரில் வருகிறது ஏவல். புதிய மொழிபெயர்ப்பாளருக்கு நன்றி, ஸ்கிரிப்டுகள் மற்றும் மேக்ரோக்கள் மிக வேகமாக இயங்குகின்றன. ஊடாடும் பிழைத்திருத்த முறை ஆதரிக்கப்படுகிறது.
  • தொகுப்பிற்கான புதிய இலக்கு அமைப்பு (இலக்கு) ஹாஷ்லிங்க் - Haxe க்காக பிரத்யேகமாக வடிவமைக்கப்பட்ட உயர்-செயல்திறன் இயக்க நேரம், JIT அல்லது Cக்கான பைட்கோடுக்கான தொகுப்பை ஆதரிக்கிறது, C உடன் எளிதாக ஒருங்கிணைக்கப்படுகிறது, அத்துடன் குறைந்த-நிலை எண் வகைகள் மற்றும் சுட்டிகளுக்கான அணுகலையும் கொண்டுள்ளது.
  • புதிய JVM இலக்கு - ஜாவாவில் இலக்கு வைக்கும் போது "-D jvm" கொடியைச் சேர்ப்பதன் மூலம் ஜாவா குறியீடு தொகுப்பைத் தவிர்த்து jvm பைட்கோடை உருவாக்க உங்களை அனுமதிக்கிறது.
  • செயல்பாடுகள் அல்லது கன்ஸ்ட்ரக்டர்கள் என்று அறிவிக்கப்படாவிட்டாலும், அழைக்கும் கட்டத்தில் இன்லைன்-வரிசைப்படுத்துவதற்கான திறன்.
  • சேர்க்கும் சாத்தியம் நிலையான நீட்டிப்புகள் "@:using(path.ToExtension)" ஐப் பயன்படுத்தி ஒரு வகையை ("enum" போன்றவை) அறிவிக்கும் போது.
  • சுருக்க வகைகள் இப்போது "obj.foo = bar" வெளிப்பாடுகளை மீண்டும் ஏற்றுவதற்கு "@:op(ab)" ஆபரேட்டரின் "செட்" பதிப்பை ஆதரிக்கின்றன.
  • "for" loop தொடரியல் இப்போது முக்கிய மதிப்பு மறு செய்கையை ஆதரிக்கிறது: "for (key => மதிப்பு சேகரிப்பில்) {}".
  • வெளிப்பாடுகளில் xml போன்ற மார்க்அப்பைப் பயன்படுத்துவதற்கான ஆதரவு: “var a = ‹hi/›;”. இப்போதைக்கு, இந்த அம்சம் மேக்ரோக்களுடன் பாகுபடுத்துவதற்கு மட்டுமே கிடைக்கிறது மற்றும் வடிவமைப்பு கட்டத்தில் உள்ளது.
  • அநாமதேய கட்டமைப்பு வகைகளின் "முழு" குறியீட்டில் உள்ள விருப்பப் புலங்களுக்கான தொடரியல்: "{ var ?f: Int; }" ("{ ?f:Int }" என்ற சுருக்கத்திற்கு மாற்று).
  • Enum மதிப்புகள் இப்போது செயல்பாட்டு வாதங்களுக்கான இயல்புநிலை மதிப்புகளாக இருக்கலாம்: "function foo‹T›(option:Option‹T› = எதுவுமில்லை)".
  • "enum சுருக்கப் பெயர்(அடிப்படை வகை) {}" தொடரியல் இனி "enum" இல் "@:" முன்னொட்டு தேவையில்லை.
  • சுருக்க கணக்கீடுகளுக்கு தானாக எண்ணுதல்:

    enum abstract Foo(Int) {
    var A; // 0
    var B; // 1
    }
    enum abstract Bar(ஸ்ட்ரிங்) {
    var A; // "ஏ"
    var B; // "பி"
    }

  • "extern" முக்கிய சொல்லுக்கு இனி "@:" முன்னொட்டைப் பயன்படுத்த வேண்டியதில்லை.
  • விருப்பம் நீக்கப்பட்டது"கருவிகள் டைனமிக்" சரங்கள் வழியாக வகுப்பு புலங்களை அணுக. வெளிப்புற வகுப்புகளுக்கு அல்லது ஒரு சுருக்க வகை மூலம் செயல்படுத்துவதன் மூலம் கிடைக்கும்.
  • வகை குறுக்குவெட்டுக்கான "A & B" தொடரியல் சேர்க்கப்பட்டது, இது தற்போது அநாமதேய கட்டமைப்புகள் மற்றும் வகை அளவுருக் கட்டுப்பாடுகளுக்கு மட்டுமே பொருந்தும். பழைய கட்டுப்பாடான தொடரியல் நீக்கப்பட்டது.
  • வெற்று "வரைபடம்" நிகழ்வுகளை உருவாக்குவது "var வரைபடம்:Map‹Int, String› = [];" என்ற தொடரியல் மூலம் கிடைக்கும். ஒரு வரிசைக்கு ஒத்த.
  • தரவு அமைப்பு "haxe.ds.ReadOnlyArray" சேர்க்கப்பட்டது.
  • மெட்டாடேட்டாவில் இப்போது பெயர்வெளிகள் இருக்கலாம் (“@:prefix.name செயல்பாடு() {…}”). அதேபோன்று வரையறைகளுடன்: "#if (some.flag ... #end".
  • பயன்படுத்தப்படும் IDEகளுக்கான புதிய சேவை நெறிமுறை VSCodeக்கான சொருகி.
  • வலை APIகளுக்கான வெளிப்புற வரையறைகள் (வெளிப்புறம்) புதுப்பிக்கப்பட்டது மற்றும் விடுபட்டவற்றைச் சேர்த்தது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்