Lua භාෂාවේ වර්ග පරීක්ෂා කිරීමේ ප්‍රභේදයක් වන Luau සඳහා විවෘත මූලාශ්‍රය

Luau ක්‍රමලේඛන භාෂාවේ පළමු ස්වාධීන නිකුතුවේ විවෘත මූලාශ්‍රය සහ ප්‍රකාශනය නිවේදනය කරන ලදී, Lua භාෂාවේ වර්ධනය දිගටම කරගෙන යන අතර Lua 5.1 සමඟ අනුකූල වේ. Luau මූලික වශයෙන් සැලසුම් කර ඇත්තේ ස්ක්‍රිප්ටින් එන්ජින් යෙදුම් වලට කාවැද්දීම සඳහා වන අතර ඉහළ කාර්ය සාධනයක් සහ අඩු සම්පත් පරිභෝජනයක් ලබා ගැනීම අරමුණු කරයි. ව්‍යාපෘති කේතය C++ වලින් ලියා ඇති අතර MIT බලපත්‍රය යටතේ විවෘත වේ.

Luau වර්ග පරීක්ෂා කිරීමේ හැකියාවන් සහ තන්තු වචන වැනි නව වාක්‍ය නිර්මිතයන් සමඟ Lua දිගු කරයි. භාෂාව Lua 5.1 සමඟ සහ අර්ධ වශයෙන් නව අනුවාද සමඟ අනුකූල වේ. Lua Runtime API සහාය දක්වයි, ඔබට පවතින කේතය සහ බන්ධන සමඟ Luau භාවිතා කිරීමට ඉඩ සලසයි. භාෂා ධාවන කාලය දැඩි ලෙස නැවත සකස් කරන ලද Lua ධාවන කාල 5.1 කේතයක් මත පදනම් වේ, නමුත් පරිවර්තකය සම්පූර්ණයෙන්ම නැවත ලියා ඇත. සංවර්ධනය අතරතුර, Lua හා සසඳන විට ඉහළ කාර්ය සාධනයක් ලබා ගැනීම සඳහා සමහර නව ප්‍රශස්තිකරණ ශිල්පීය ක්‍රම භාවිතා කරන ලදී.

මෙම ව්‍යාපෘතිය Roblox විසින් වැඩි දියුණු කරන ලද අතර Roblox Studio සංස්කාරකය ඇතුළුව මෙම සමාගමේ සූදු වේදිකාව, ක්‍රීඩා සහ පරිශීලක යෙදුම්වල කේතයෙහි භාවිතා වේ. මුලදී, Luau සංවෘත දොරවල් පිටුපස සංවර්ධනය කරන ලද නමුත් අවසානයේ එය ප්‍රජාවගේ සහභාගීත්වයෙන් තවදුරටත් ඒකාබද්ධ සංවර්ධනය සඳහා විවෘත ව්‍යාපෘති කාණ්ඩයට මාරු කිරීමට තීරණය විය.

ප්රධාන ලක්ෂණ:

  • ක්‍රමානුකූලව ටයිප් කිරීම, ගතික සහ ස්ථිතික ටයිප් කිරීම අතර අතරමැදි ස්ථානයක් අල්ලා ගැනීම. විශේෂ විවරණ හරහා වර්ග තොරතුරු සඳහන් කිරීමෙන් අවශ්‍ය පරිදි ස්ථිතික ටයිප් කිරීම භාවිතා කිරීමට Luau ඔබට ඉඩ සලසයි. "ඕනෑම", "නිල්", "බූලියන්", "අංක", "නූල" සහ "නූල්" යන බිල්ට් වර්ග සපයනු ලැබේ. ඒ අතරම, විචල්‍යයන් සහ ශ්‍රිතයන් පැහැදිලිව නිර්වචනය නොකර ගතික ටයිප් කිරීම භාවිතා කිරීමේ හැකියාව ආරක්ෂා වේ. ශ්‍රිතය foo(x: number, y: string): boolean local k: string = y:rep(x) return k == “a” end
  • "\5.3x**" (ෂඩ් දශම අංකය), "\u{**}" (යුනිකෝඩ් අක්ෂරය) සහ "\z" (පේළියේ අවසානය) වැනි තන්තු වචන (Lua 0 හි මෙන්) සඳහා සහය සංඛ්‍යා හැඩතල ගැන්වීම දෘශ්‍යමාන කිරීමේ හැකියාව (ඔබට 1 වෙනුවට 000_000_1000000 ලිවිය හැක), ෂඩාස්‍ර (0x...) සහ ද්විමය සංඛ්‍යා (0b......).
  • නව ලූප පුනරාවර්තනයකට පැනීමට, පවතින "බ්‍රේක්" මූල පදය සම්පූර්ණ කරමින් "දිගටම" ප්‍රකාශනය සඳහා සහාය.
  • සංයුක්ත පැවරුම් ක්‍රියාකරුවන් සඳහා සහාය (+=, -=, *=, /=, %=, ^=, ..=).
  • බ්ලොක් ක්‍රියාත්මක කිරීමේදී ගණනය කරන ලද අගය ආපසු ලබා දෙන ප්‍රකාශන ආකාරයෙන් කොන්දේසි සහිත "if-then-else" බ්ලොක් භාවිතය සඳහා සහාය. ඔබට බ්ලොක් එකක අත්තනෝමතික elseif ප්‍රකාශන සංඛ්‍යාවක් නියම කළ හැක. දේශීය maxValue = a > b නම් වෙනත් b දේශීය ලකුණ = x < 0 නම් -1 elseif x > 0 එවිට 1 else 0
  • හුදකලා මාදිලියක් (වැලි පෙට්ටියක්) තිබීම, විශ්වාස කළ නොහැකි කේතයක් ධාවනය කිරීමට ඔබට ඉඩ සලසයි. මෙම විශේෂාංගය වෙනත් සංවර්ධකයෙකු විසින් ලියන ලද ඔබේම කේතයක් සහ කේතයක් සමඟින් දියත් කිරීම සංවිධානය කිරීමට භාවිතා කළ හැක, උදාහරණයක් ලෙස, සහතික කළ නොහැකි ආරක්ෂාව සඳහා තෙවන පාර්ශවීය පුස්තකාල.
  • ආරක්ෂක ගැටළු ඇති කළ හැකි කාර්යයන් ඉවත් කර ඇති සම්මත පුස්තකාලයේ සීමාවක්. උදාහරණයක් ලෙස, පුස්තකාල “io” (ගොනු වෙත ප්‍රවේශ වීම සහ ක්‍රියාවලි දියත් කිරීම), “පැකේජය” (ගොනු වෙත ප්‍රවේශ වීම සහ මොඩියුල පැටවීම), “os” (ගොනු වෙත ප්‍රවේශ වීම සහ පරිසර විචල්‍යයන් වෙනස් කිරීම සඳහා වන කාර්යයන්), “නිදොස්කරණය” ( මතකය සමඟ අනාරක්ෂිත ක්‍රියාකාරිත්වය) , "dofile" සහ "loadfile" (FS ප්රවේශය).
  • ස්ථිතික කේත විශ්ලේෂණය සඳහා මෙවලම් සැපයීම, දෝෂ හඳුනාගැනීම (ලින්ටර්) සහ වර්ගවල නිවැරදි භාවිතය පරීක්ෂා කිරීම.
  • තමන්ගේම ඉහළ කාර්ය සාධන විග්‍රහකය, බයිට්කේත පරිවර්තකය සහ සම්පාදකය. Luau තවමත් JIT සම්පාදනය සඳහා සහය නොදක්වයි, නමුත් Luau පරිවර්තකය සමහර අවස්ථාවන්හිදී LuaJIT සමඟ කාර්ය සාධනය සමඟ සැසඳිය හැකි බව කියනු ලැබේ.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න