అందుబాటులో టూల్కిట్ విడుదల హాక్స్ 4.1, ఇది బలమైన టైపింగ్, క్రాస్-కంపైలర్ మరియు ఫంక్షన్ల ప్రామాణిక లైబ్రరీతో అదే పేరుతో బహుళ-పారాడిగ్మ్ హై-లెవల్ ప్రోగ్రామింగ్ లాంగ్వేజ్ను కలిగి ఉంటుంది. ప్రాజెక్ట్ C++, HashLink/C, JavaScript, C#, Java, PHP, Python మరియు Luaకి అనువాదంతో పాటు JVM, HashLink/JIT, Flash మరియు Neko బైట్కోడ్లకు ప్రతి లక్ష్య ప్లాట్ఫారమ్ యొక్క స్థానిక సామర్థ్యాలకు ప్రాప్యతతో సంకలనం చేయడానికి మద్దతు ఇస్తుంది. కంపైలర్ కోడ్ ద్వారా పంపిణీ చేయబడింది GPLv2 లైసెన్స్ క్రింద, మరియు Haxe కోసం అభివృద్ధి చేయబడిన ప్రామాణిక లైబ్రరీ మరియు వర్చువల్ మిషన్లు హాష్ లింక్ и నెకో MIT లైసెన్స్ కింద.
భాష ఉంది వ్యక్తీకరణ-ఆధారిత బలమైన టైపింగ్తో. ఆబ్జెక్ట్-ఓరియెంటెడ్, జెనెరిక్ మరియు ఫంక్షనల్ ప్రోగ్రామింగ్ టెక్నిక్లకు మద్దతు ఉంది. Haxe సింటాక్స్ ECMAScriptకు దగ్గరగా ఉంది మరియు విస్తరిస్తుంది స్టాటిక్ టైపింగ్, ఆటోటైప్ ఇన్ఫరెన్స్, ప్యాటర్న్ మ్యాచింగ్, జెనరిక్స్, ఇటరేటర్ ఆధారిత లూప్లు, AST మాక్రోలు, GADT (సాధారణీకరించిన బీజగణిత డేటా రకాలు), నైరూప్య రకాలు, అనామక నిర్మాణాలు, సరళీకృత శ్రేణి నిర్వచనాలు, షరతులతో కూడిన సంకలన వ్యక్తీకరణలు, ఫీల్డ్కు జోడించే మెటాడేటా వంటి దాని లక్షణాలు , తరగతులు మరియు వ్యక్తీకరణలు, స్ట్రింగ్ ఇంటర్పోలేషన్ ("'నా పేరు $పేరు'"), టైప్ పారామీటర్లు ('కొత్త మెయిన్ ("foo")') మరియు ఇంకా చాలా.
తరగతి పరీక్ష {
స్టాటిక్ ఫంక్షన్ మెయిన్() {
చివరి వ్యక్తులు = [
"ఎలిజబెత్" => "ప్రోగ్రామింగ్",
"జోయెల్" => "డిజైన్"
];
కోసం (పేరు => వ్యక్తులలో ఉద్యోగం) {
ట్రేస్ ('$పేరు జీవించడానికి $ ఉద్యోగం చేస్తుంది!');
}
}
}
వెర్షన్ 4.1లో కొత్త ఫీచర్లు:
టెయిల్ రికర్షన్ ఆప్టిమైజేషన్ జోడించబడింది.
మినహాయింపు నిర్వహణ కోసం కొత్త ఏకీకృత API జోడించబడింది.
"ప్రయత్నించండి {} క్యాచ్(ఇ) {}" అనే నిర్మాణం "ప్రయత్నించండి {} క్యాచ్ (ఇ: హాక్స్. మినహాయింపు) {}" కోసం సంక్షిప్తలిపిగా అనుమతించబడింది.
eval ఇంటర్ప్రెటర్కు SSL మద్దతు జోడించబడింది.
లక్ష్యం JVM ఇకపై ప్రయోగాత్మకంగా పరిగణించబడదు.
లాంగ్వేజ్ సర్వర్ ప్రోటోకాల్ కోసం, “గోటో ఇంప్లిమెంటేషన్” మరియు “రిఫరెన్స్లను కనుగొనండి” ఫంక్షన్లకు మద్దతు జోడించబడింది.
ఉత్పత్తి చేయబడిన కోడ్లో తాత్కాలిక స్థానిక వేరియబుల్స్కు మెరుగైన నామకరణం. రిడెండెంట్ "రిటర్న్" తీసివేయబడింది రిటర్న్ విలువ లేకుండా బాణం ఫంక్షన్లలో.
ఫీల్డ్ల కోసం ఇంక్రిమెంట్ మరియు డిక్రిమెంట్ ఆపరేటర్లను అనుమతించండి నైరూప్య రకాలు.
అనామక ఇటరేటర్లను ఉపయోగించి లూప్ల కోసం ఇన్లైనింగ్ మెరుగుపరచబడింది.
js: ES5 కోసం మెరుగైన స్ట్రింగ్మ్యాప్ అమలు.
js: కంపైలర్ ఎంపిక “-D js-es=6”కి లెట్ వేరియబుల్స్ జనరేషన్ జోడించబడింది, ES6 తరగతుల తరం మెరుగుపరచబడింది.
lua: "StringIterator" ఆప్టిమైజ్ చేయబడింది, ఎర్రర్ హ్యాండ్లింగ్ మెరుగుపరచబడింది.
php: బేస్ రకాల కోసం ఆప్టిమైజ్ చేయబడిన "Std.isOfType".
php: రూపొందించబడిన శ్రేణులు ఇప్పుడు స్థానిక ఇంటర్ఫేస్లు “ఇటరేటర్”, “ఇటరేటర్ అగ్రిగేట్”, “కౌంటబుల్” అమలు చేస్తాయి.
cs: జోడించిన మెటాడేటా "@:అసెంబ్లీమెటా" మరియు "@:అసెంబ్లీ స్ట్రిక్ట్".
python: అనామక వస్తువులకు "__contains__" అమలు జోడించబడింది
మరియు "__getitem__", ఇది వాటిని రూపొందించిన కోడ్లో నిఘంటువులుగా ఉపయోగించడానికి అనుమతిస్తుంది.
jvm: టైప్ చేసిన ఫంక్షన్లను యాక్సెస్ చేయడం మరియు వస్తువులు అనామక నిర్మాణాలుగా ఉపయోగించబడే సందర్భాలలో అదనపు ఇంటర్ఫేస్లను రూపొందించడం వంటి కొత్త మార్గం కారణంగా పనితీరు గణనీయంగా మెరుగుపడింది (డైనమిక్ ప్రాపర్టీ లుకప్ నిరోధించబడుతుంది):
ప్రామాణిక లైబ్రరీలో మెరుగుదలలు:
"Array.contains" ఫంక్షన్ జోడించబడింది.
"Array.keyValueIterator" జోడించబడింది, ఇది శ్రేణుల కోసం కీ-విలువ పునరావృతాన్ని అమలు చేస్తుంది ("కోసం (కీ => అర్రేలో విలువ)").
పరిమితి రకం "haxe.Constraints.NotVoid" జోడించబడింది.
"Lambda" తరగతికి "findIndex" మరియు "foldi" ఫంక్షన్లు జోడించబడ్డాయి.
అమలు చేయబడిన "అరే యాక్సెస్" ("arr[i]" ద్వారా యాక్సెస్) మరియు "haxe.ds.HashMap" కోసం కీ-విలువ పునరావృతం.
jvm: "StringMap", "sys.thread.Lock", "sys.thread.Thread" యొక్క JVM-నిర్దిష్ట సంస్కరణలు అమలు చేయబడ్డాయి.
java/jvm: "haxe.crypto" మాడ్యూల్స్ కోసం "MD5", "SHA-1" మరియు "SHA-256" యొక్క స్థానిక అమలులను ఉపయోగించారు.