Lua tipai, vertybės ir išraiškos

Turinys
Lua Kalbant apie duomenų tipus ir jų vertes, tai yra dinamiška kalba, tai yra, kuriant kintamąjį ir nurodant, kad tai eilutė, skaičius ar net loginis, nėra jokio tipo apibrėžimų.
Išraiškos eina koja kojon su vertybėmis, tai leidžia mums su jomis atlikti operacijas, kurios gali būti įvairios - nuo aritmetinių, reliatyvių ir net sąlyginių operacijų, suteikiančių mūsų programoms dinamiškumo, tačiau prieš pereidami prie išraiškų, pažiūrėkime, kokių tipų vertybės mums priklauso Lua ir kaip jie veikia kalba.
In Lua Kiekviena vertė įkelia savo tipą, kuriame galime rasti aštuonis skirtingus šių tipų tipus: nulis, loginis, skaičius, eilutė, vartotojo duomenys, funkcija, gija ir lentelė, kur su funkcija tipas () galime žinoti nurodytos vertės tipo pavadinimą. Pažiūrėkime paprastą pavyzdį, kaip Lua interpretuokite tai pagal tipas ():

Kaip matome, tipą suteikia jo įkeliama vertė, o paskirta funkcija padeda mums žinoti, kas tai yra, matome, kad net ir paskutiniu kintamojo H atveju rezultatas yra eilutė, ir tai yra todėl, kad funkcija tipas () visada yra eilutė. Kadangi matėme, kaip Lua aiškinkite duomenų tipus, pažvelkime į kiekvieną iš jų išsamiai:
NeTai yra vertės rūšis, kurios pagrindinė savybė yra skirtis nuo kitų vertybių. Kaip matėme paskutinėje pamokoje, visuotinis kintamasis pagal numatytuosius nustatymus turi reikšmę nulis ir jei norime ją pašalinti, mes priskiriame šią vertę, netgi galime ją panaudoti naudingos vertės nebuvimui parodyti.
BūlinįLoginės reikšmės, kaip ir kitos programavimo kalbos, turi dvi reikšmes - teisingą ir klaidingą, tačiau, skirtingai nei kitos kalbos, tokio tipo duomenys neturi bendro domeno per visas sąlygas, nes bet kuri iš jų gali reikšti sąlygą.
SkaičiusŠis duomenų tipas reiškia sveikuosius skaičius ir dešimtainius skaičius. Lua neturi sveiko skaičiaus vertės tipo ir jam to nereikia, nes Lua jis gali pavaizduoti bet kokį 32 bitų sveikąjį skaičių be apvalinimo problemų, tačiau įdomiausia kalba yra tai, kad galime ją surinkti naudoti kitą tipą, pvz., ilgus sveikuosius skaičius arba plūdes, o tai yra labai naudinga tais atvejais, kai aparatinė įranga neturi parama dešimtainiams.
StygaStygos į vidų Lua Jie yra simbolių seka, jie yra nekintamos vertės, tai yra, mes negalime pakeisti simbolio eilutėje. Juos tvarko automatinė kalbos atmintis, kaip ir kiti objektai, o eilutės priskyrimas gali būti atliekamas su dvigubomis arba pavienėmis kabutėmis.
LentelėLentelės duomenų tipas įgyvendina asociatyvų masyvą, tai yra masyvas, kurį galima indeksuoti ne tik skaičiais, bet ir eilutėmis ar bet kokia kita kalbos reikšme, išskyrus nulinę. Lentelės neturi fiksuoto dydžio, todėl galime įtraukti tiek elementų, kiek norime, ir kartu galime pateikti modulius, paketus ir objektus. Galiausiai jį sukurti taip paprasta, kaip naudojant skliaustus {} inicijuojant lentelę.
funkcijosFunkcijos viduje Lua jie elgiasi gana savitai, mes galime juos išsaugoti kintamaisiais, perduoti kaip argumentus kitoms funkcijoms ir grąžinti net kaip rezultatus, kur Lua šias funkcijas galite vadinti rašytomis tiek pačia kalba, tiek C.
Vartotojo duomenysDuomenų tipas vartotojo duomenys leidžia saugoti kintamuosiuose Lua savavališka informacija iš C. Jame nėra iš anksto nustatytų operacijų Lua, išskyrus priskyrimo ir lygybės testus, kai pagrindinė šio tipo funkcija yra atvaizduoti naujus tipus, sukurtus naudojant programą ar biblioteką, parašytą C.
Kaip matome, tipai labai nesiskiria nuo to, ką galime rasti dabartinėmis kalbomis, tačiau neabejotina, kad paprastumas, kurį mes turime jiems atstovauti, yra daug didesnis, tada pažiūrėkime, kokia yra išraiškų vaidmuo ir kaip jas naudoti su mūsų vertybėmis.
Aritmetinės operacijos yra nepaprastai svarbios bet kuriai programai, todėl svarbu žinoti, kaip su jomis elgtis ir kokie apribojimai gali būti mūsų vartojama kalba. Lua jis palaiko įprastus operatorius, prie kurių esame pripratę: sudėjimą, atėmimą, dauginimą, padalijimą, eksponentą, procentą ir neigimą.
Pažiūrėkime tada paprastą kodą, kuriame parodysime kai kurių operatorių naudojimą Lua:
 x = 8 + 5 y = 9 - 2 spaudiniai (x * y% 0,01)
Daugybos operacijos rezultate naudojame pridėjimą, atimtį ir padalijimą iš 2, pažiūrėkime, kaip vertėjas reaguoja, kai vykdome kodą per konsolę:

DIDELIS

Kaip matome, „Lua“ daug nesiskiria nuo kitų aritmetinių operacijų kalbų, tačiau dėl paprastumo rašant kodą gana lengva ją valdyti programai kurti.
Lua kaip ir kitos kalbos, jis suteikia mums santykių operatorių, tokių kaip didesnis nei>, mažesnis nei <, mažesnis arba lygus =, lygus-lygus == ir neigimas ~ =. Matome, kad vienintelis dalykas, kuris galbūt skiriasi, yra neigimas, tačiau kai mes prie to priprasime, jo naudojimo problemų nekils.
Visi šie operatoriai gali grąžinti teisingą arba klaidingą, kur net galime taikyti tiek lygybės operatorių, tiek neigimo operatorių dviem vertėms. Šie palyginimai Lua ji daro juos, atsižvelgdama į tipą, be kitų veiksnių, pažiūrėkime šiame kode, kur palyginimas atliekamas pagal tą patį objektą:
 a = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = a
Jei palyginus tą patį, operacijos rezultatas parodo, kad a yra lygus c, bet a skiriasi nuo b, taip yra dėl to, kad jie yra tas pats objektas. Be to, turime būti labai atsargūs lygindami skirtingus tipus, nes, pavyzdžiui, 6 skiriasi nuo „6“ ir jei darome kažką panašaus į „3“ <„8“ Lua tai duos klaidą, nes mes maišome eilutes.
Loginiai operatoriai Lua jie yra ir, arba ne. Kai lyginama naudojant šiuos operatorius, pirmasis argumentas bus grąžintas, jei jis klaidingas, antrasis bus grąžintas. Pažvelkime į pavyzdžių seriją interaktyvioje konsolėje, norėdami parodyti pirmiau minėtą.

DIDELIS

Norėdami atlikti sujungimą Lua yra per dvitaškį, jis šiek tiek keičia sintaksę kitų kalbų atžvilgiu, tačiau taip pat yra gana paprasta, bet Lua Jis visada eina šiek tiek toliau ir, jei randa skaičių ir yra sujungimo operacija, jis konvertuoja jį į eilutę, pažiūrėkime du paprastus šios operacijos pavyzdžius:

DIDELIS

Kaip matome pirmuoju atveju, operacija atliekama be jokių problemų, o antruoju atveju turime skaičius, Lua automatiškai konvertuoja juos į eilutes. Svarbu prisiminti, kad eilutės yra nekintamos, todėl ši operacija visada sukuria naują eilutę, nekeisdama jos operando.
Galiausiai turime konstruktorius, kurie yra išraiškos, leidžiančios sukurti ir inicijuoti lenteles Lua ir tai yra vienas universaliausių ir galingiausių jo mechanizmų. Mes galime naudoti tuščią konstruktorių be jokių problemų, naudojant tik skliaustus {} kuris sukurs tuščią lentelę kaip tokią. Tai taip pat gali inicijuoti masyvus ar sąrašus, pažiūrėkime pavyzdį:
 dienos = {"sekmadienis", "pirmadienis", "antradienis", "trečiadienis", "ketvirtadienis", "penktadienis", "šeštadienis"}
Čia mes sudarome sąrašą su savaitės dienomis ir, jei norime pasiekti jo elementus, nurodydami tą patį indeksą, kurį turime, pavyzdžiui, norėdami gauti ketvirtadienį, tai būtų indekso numeris 5 arba sekmadienis būtų skaičius 1, nuo Lua Jis neatsiranda į nulį, kaip ir kitos kalbos, pažiūrėkime, kaip jis atrodo, kai jį paleidžiame savo konsolėje:

Taip pat galime sukurti savo asociatyvius pagrindinės vertės tipo masyvus:
masyvas = {x = 26, y = 67}
Tačiau svarbu, kad, norėdami pasiekti jo vertes, padarysime nuorodą į indeksą su dvigubomis pertraukomis, gausime nulinę vertę, matysime savo veiklą interaktyvioje konsolėje:

Tuo mes baigiame pamoką, kur galėjome tai pamatyti Lua išplečia savo paprastumą visuose jį sudarančiuose kraštuose, pradedant dinamiškais tipais, kuriuos jis tvarko, paprastu būdu atlikti užduotis, tvarkydamas santykių ir loginius operatorius, taip pat suteikia mums labai naudingų įrankių, tokių kaip sujungimai ir konstruktoriai patirti kalbą kuo maloniau ir maloniau.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave