லுவா மொழியின் வகைச் சரிபார்ப்பு மாறுபாடான லுவாவிற்கான ஓப்பன் சோர்ஸ்

லுவா மொழியின் வளர்ச்சியைத் தொடர்கிறது மற்றும் லுவா 5.1 உடன் பின்தங்கிய இணக்கத்தன்மையுடன், லுவா நிரலாக்க மொழியின் முதல் முழுமையான வெளியீட்டின் திறந்த மூல மற்றும் வெளியீட்டை அறிவித்தது. Luau முதன்மையாக ஸ்கிரிப்டிங் என்ஜின்களை பயன்பாடுகளில் உட்பொதிப்பதற்காக வடிவமைக்கப்பட்டுள்ளது மற்றும் அதிக செயல்திறன் மற்றும் குறைந்த வள நுகர்வு ஆகியவற்றை அடைவதை நோக்கமாகக் கொண்டுள்ளது. திட்டக் குறியீடு C++ இல் எழுதப்பட்டுள்ளது மற்றும் MIT உரிமத்தின் கீழ் திறக்கப்பட்டுள்ளது.

வகைச் சரிபார்ப்புத் திறன்கள் மற்றும் ஸ்டிரிங் லிட்டரல்கள் போன்ற சில புதிய தொடரியல் கட்டமைப்புகளுடன் லுவாவை விரிவுபடுத்துகிறது. மொழி லுவா 5.1 மற்றும் ஓரளவு புதிய பதிப்புகளுடன் இணக்கமாக உள்ளது. Lua Runtime API ஆதரிக்கப்படுகிறது, ஏற்கனவே உள்ள குறியீடு மற்றும் பிணைப்புகளுடன் Luau ஐப் பயன்படுத்த உங்களை அனுமதிக்கிறது. மொழி இயக்க நேரம் பெரிதும் மறுவேலை செய்யப்பட்ட லுவா இயக்க நேர 5.1 குறியீட்டை அடிப்படையாகக் கொண்டது, ஆனால் மொழிபெயர்ப்பாளர் முற்றிலும் மீண்டும் எழுதப்பட்டுள்ளார். வளர்ச்சியின் போது, ​​லுவாவுடன் ஒப்பிடும்போது அதிக செயல்திறனை அடைய சில புதிய தேர்வுமுறை நுட்பங்கள் பயன்படுத்தப்பட்டன.

இந்த திட்டம் Roblox ஆல் உருவாக்கப்பட்டது மற்றும் Roblox Studio எடிட்டர் உட்பட இந்த நிறுவனத்தின் கேமிங் தளம், விளையாட்டுகள் மற்றும் பயனர் பயன்பாடுகளின் குறியீட்டில் பயன்படுத்தப்படுகிறது. ஆரம்பத்தில், லுவா மூடிய கதவுகளுக்குப் பின்னால் உருவாக்கப்பட்டது, ஆனால் இறுதியில் அதை சமூகத்தின் பங்கேற்புடன் மேலும் கூட்டு வளர்ச்சிக்கான திறந்த திட்டங்களின் வகைக்கு மாற்ற முடிவு செய்யப்பட்டது.

Основные:

  • படிப்படியான தட்டச்சு, டைனமிக் மற்றும் நிலையான தட்டச்சுக்கு இடையில் ஒரு இடைநிலை நிலையை ஆக்கிரமித்தல். சிறப்பு சிறுகுறிப்புகள் மூலம் வகைத் தகவலைக் குறிப்பிடுவதன் மூலம் தேவைக்கேற்ப நிலையான தட்டச்சுகளைப் பயன்படுத்த Luau உங்களை அனுமதிக்கிறது. உள்ளமைக்கப்பட்ட வகைகள் "ஏதேனும்", "நில்", "பூலியன்", "எண்", "சரம்" மற்றும் "நூல்" வழங்கப்படுகின்றன. அதே நேரத்தில், மாறிகள் மற்றும் செயல்பாடுகளின் வகையை வெளிப்படையாக வரையறுக்காமல் டைனமிக் டைப்பிங்கைப் பயன்படுத்துவதற்கான சாத்தியம் பாதுகாக்கப்படுகிறது. செயல்பாடு foo(x: எண், y: சரம்): பூலியன் உள்ளூர் k: சரம் = y:rep(x) திரும்ப k == "a" முடிவு
  • "\5.3x**" (ஹெக்ஸாடெசிமல் எண்), "\u{**}" (யூனிகோட் எழுத்து) மற்றும் "\z" (வரியின் முடிவு) போன்ற சர எழுத்துகளுக்கான (லுவா 0 இல் உள்ளதைப் போல) ஆதரவு. எண் வடிவமைப்பைக் காட்சிப்படுத்தும் திறன் (1 க்கு பதிலாக 000_000_1000000 என்று எழுதலாம்), ஹெக்ஸாடெசிமல் (0x...) மற்றும் பைனரி எண்கள் (0b......).
  • புதிய லூப் மறு செய்கைக்குச் செல்ல, ஏற்கனவே உள்ள "பிரேக்" முக்கிய சொல்லை நிரப்பி, "தொடரவும்" வெளிப்பாடுக்கான ஆதரவு.
  • கூட்டு ஒதுக்கீட்டு ஆபரேட்டர்களுக்கான ஆதரவு (+=, -=, *=, /=, %=, ^=, ..=).
  • பிளாக்கின் செயல்பாட்டின் போது கணக்கிடப்பட்ட மதிப்பை வழங்கும் வெளிப்பாடுகளின் வடிவத்தில் நிபந்தனைக்குட்பட்ட "if-then-else" தொகுதிகளைப் பயன்படுத்துவதற்கான ஆதரவு. ஒரு தொகுதியில் வேறுவிதமான வெளிப்பாடுகளின் தன்னிச்சையான எண்ணை நீங்கள் குறிப்பிடலாம். உள்ளூர் maxValue = a > b எனில் வேறு b லோக்கல் குறி = x 0 பிறகு 1 else 0
  • தனிமைப்படுத்தல் பயன்முறையின் (சாண்ட்பாக்ஸ்) இருப்பு, இது நம்பத்தகாத குறியீட்டை இயக்க உங்களை அனுமதிக்கிறது. உங்கள் சொந்த குறியீடு மற்றும் மற்றொரு டெவலப்பரால் எழுதப்பட்ட குறியீட்டின் மூலம் வெளியீட்டை ஒழுங்கமைக்க இந்த அம்சம் பயன்படுத்தப்படலாம், எடுத்துக்காட்டாக, மூன்றாம் தரப்பு நூலகங்களின் பாதுகாப்பிற்காக உத்தரவாதம் அளிக்க முடியாது.
  • பாதுகாப்புச் சிக்கல்களை உருவாக்கக்கூடிய செயல்பாடுகள் அகற்றப்பட்ட நிலையான நூலகத்தின் வரம்பு. எடுத்துக்காட்டாக, நூலகங்கள் “io” (கோப்புகளை அணுகுதல் மற்றும் செயல்முறைகளைத் தொடங்குதல்), “தொகுப்பு” (கோப்புகளை அணுகுதல் மற்றும் ஏற்றுதல் தொகுதிகள்), “os” (கோப்புகளை அணுகுதல் மற்றும் சூழல் மாறிகளை மாற்றுவதற்கான செயல்பாடுகள்), “பிழைத்திருத்தல்” ( நினைவகத்துடன் பாதுகாப்பற்ற செயல்பாடு) , "dofile" மற்றும் "loadfile" (FS அணுகல்).
  • நிலையான குறியீடு பகுப்பாய்வுக்கான கருவிகளை வழங்குதல், பிழைகளை அடையாளம் காணுதல் (லிண்டர்) மற்றும் வகைகளின் சரியான பயன்பாட்டைச் சரிபார்த்தல்.
  • சொந்த உயர் செயல்திறன் பாகுபடுத்தி, பைட்கோட் மொழிபெயர்ப்பாளர் மற்றும் கம்பைலர். Luau இன்னும் JIT தொகுப்பை ஆதரிக்கவில்லை, ஆனால் Luau மொழிபெயர்ப்பாளரின் செயல்திறன் LuaJIT உடன் சில சூழ்நிலைகளில் மிகவும் ஒப்பிடத்தக்கது என்று கூறப்படுகிறது.

ஆதாரம்: opennet.ru

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