Satura rādītājs
Lua Tā ir dinamiska valoda attiecībā uz datu tipiem un to vērtībām, tas ir, veidojot mainīgo un norādot, ka tas ir virkne, skaitlis vai pat Būla, nav neviena veida definīcijas.Izteiksmes iet roku rokā ar vērtībām, kas ļauj mums ar tām veikt operācijas, kas var būt dažādas - sākot ar aritmētiskām, relāciju un pat nosacītām operācijām, lai dotu mūsu programmām dinamismu, bet pirms pārejam pie izteiksmēm, apskatīsim to vērtību veidus, mums pieder Lua un kā viņi strādā valodas ietvaros.
In Lua Katra vērtība ielādē savu veidu, kurā mēs varam atrast astoņus dažādus šo veidu veidus: nulle, Būla, skaitlis, virkne, lietotāja dati, funkcija, pavediens un tabula, kur ar funkciju tips () mēs varam zināt dotās vērtības tipa nosaukumu. Apskatīsim vienkāršu piemēru, kā Lua interpretējiet to saskaņā ar tips ():
NēŠis ir vērtību veids, kura galvenais īpašums ir atšķirties no citām vērtībām. Kā redzējām pēdējā apmācībā, globālajam mainīgajam pēc noklusējuma ir vērtība nulle un, ja mēs vēlamies to novērst, mēs piešķiram šo vērtību, mēs pat varam to izmantot, lai attēlotu noderīgas vērtības neesamību.
BūlaBūla vērtībām, tāpat kā pārējām programmēšanas valodām, ir divas vērtības - patiesa un nepatiesa, taču atšķirībā no citām valodām šāda veida datiem nav kopēja domēna nosacījumos, jo jebkura var attēlot nosacījumu.
SkaitlisŠis datu veids apzīmē gan veselus skaitļus, gan decimāldaļas. Lua nav veselu skaitļu vērtības veida, un tas nav vajadzīgs, jo Lua tas var attēlot jebkuru 32 bitu veselu skaitli bez noapaļošanas problēmām, taču valodas interesantākais ir tas, ka mēs varam to apkopot, lai izmantotu citu veidu, piemēram, garus veselus skaitļus vai pludiņus, kas ir diezgan noderīgi gadījumos, kad aparatūrai nav atbalsts aiz komata.
StīgaStīgas iekšā Lua Tās ir rakstzīmju secība, tās ir nemainīgas vērtības, tas ir, mēs nevaram mainīt rakstzīmi virknē. Tos apstrādā automātiskā valodas atmiņa, tāpat kā pārējos objektus, un virknes piešķiršana var notikt ar dubultām vai atsevišķām pēdiņām.
TabulaTabulas datu tips ievieš asociatīvo masīvu, kas ir masīvs, kuru var indeksēt ne tikai ar skaitļiem, bet ar virknēm vai jebkuru citu valodas vērtību, izņemot nulli. Tabulām nav noteikta izmēra, tāpēc mēs varam iekļaut tik daudz elementu, cik vēlamies, un ar tām mēs varam pārstāvēt moduļus, paketes un objektus. Visbeidzot, tā izveide ir tikpat vienkārša kā kronšteinu izmantošana {} pie galda inicializācijas.
IespējasFunkcijas iekšā Lua tiem ir diezgan savdabīga uzvedība, mēs varam tos saglabāt mainīgajos, nodot tos kā argumentus citām funkcijām un atdot tos pat kā rezultātus, kur Lua šīs funkcijas var saukt par rakstītām gan pašā valodā, gan C valodā.
Lietotāja datiDatu veids lietotāja dati ļauj saglabāt mainīgos Lua patvaļīga informācija no C. Tam nav iepriekš noteiktu darbību Lua, izņemot uzdevumu un vienlīdzības testus, kur šāda veida galvenā funkcija ir attēlot jaunus veidus, kas izveidoti ar lietojumprogrammu vai bibliotēku, kas rakstīta C valodā.
Kā redzam, veidi daudz neatšķiras no tā, ko mēs varam atrast pašreizējās valodās, taču ir skaidrs, ka vienkāršība, kas mums ir jāatspoguļo, ir daudz lielāka, tad apskatīsim izteicienu lomu un to, kā mēs tos varam izmantot ar mūsu vērtībām.
Aritmētiskās darbības ir ārkārtīgi svarīgas jebkurai programmai, un ir svarīgi zināt, kā ar tām rīkoties un kādi ierobežojumi var pastāvēt mūsu izmantotajā valodā. Lua tas atbalsta parastos operatorus, pie kuriem esam pieraduši: saskaitīšanu, atņemšanu, reizināšanu, dalīšanu, eksponenciālu, procentuālu un noliegumu.
Apskatīsim vienkāršu kodu, kurā parādīsim dažu operatoru izmantošanu Lua:
x = 8 + 5 y = 9 - 2 izdrukas (x * y% 0,01)Reizināšanas operācijas rezultātā mēs izmantojam saskaitīšanu, atņemšanu un dalīšanu ar 2. Redzēsim, kā tulks atbildēs, kad mēs palaidīsim kodu caur konsoli:
PALIELINĀT
Lua tāpat kā citas valodas, tas dod mums relāciju operatorus, piemēram, lielāks par>, mazāks par <, mazāks vai vienāds =, vienāds-vienāds == un noliegums ~ =. Mēs redzam, ka vienīgais, kas, iespējams, atšķiras, ir noliegums, bet pēc tam, kad būsim pieraduši, ar tā lietošanu nebūs problēmu.
Visi šie operatori var atgriezt patiesu vai nepatiesu, kur mēs pat varam piemērot gan vienlīdzības operatoru, gan nolieguma operatoru divām vērtībām. Šie salīdzinājumi Lua tā tos veic, pamatojoties uz tipu, papildus citiem faktoriem, turpmāk kodā redzēsim, kur salīdzinājums tiek veikts, pamatojoties uz to pašu objektu:
a = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = aJa, ja salīdzinām to pašu, tad operācijas rezultāts mums dod, ka a ir vienāds ar c, bet ka a atšķiras no b, tas ir saistīts ar faktu, ka tie ir viens un tas pats objekts. Turklāt mums jābūt ļoti uzmanīgiem, salīdzinot dažādus veidus, jo, piemēram, 6 atšķiras no "6" un ja mēs darām kaut ko līdzīgu "3" <"8" Lua tas radīs kļūdu, jo mēs sajaucam virknes.
Loģiskie operatori Lua tie ir un, vai nav. Ja tiek veikts salīdzinājums, izmantojot šos operatorus, pirmais arguments tiks atgriezts, ja tas būs nepatiess, pretējā gadījumā tiks atgriezts otrais. Apskatīsim virkni piemēru interaktīvajā konsolē, lai demonstrētu iepriekš minēto.
PALIELINĀT
PALIELINĀT
Visbeidzot, mums ir konstruktori, kas ir izteiksmes, kas ļauj mums izveidot un inicializēt tabulas, šī funkcija ir unikāla Lua un tas ir viens no tā daudzpusīgākajiem un spēcīgākajiem mehānismiem. Mēs varam bez problēmām izmantot tukšu konstruktoru, izmantojot tikai iekavas {} kas izveidos tukšu tabulu kā tādu. Tie var arī inicializēt masīvus vai sarakstus, apskatīsim piemēru:
dienas = {"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"}Šeit mēs izveidojam sarakstu ar nedēļas dienām, un, ja mēs vēlamies piekļūt tā elementiem, norādot tā paša indeksu, piemēram, lai iegūtu ceturtdienu, tas būtu indeksa numurs 5 vai svētdiena būtu skaitlis 1, kopš Lua Tas netiek inicializēts līdz nullei, tāpat kā pārējās valodas. Apskatīsim, kā tas izskatās, kad to palaižam savā konsolē:
masīvs = {x = 26, y = 67}
Bet ir svarīgi, lai, lai piekļūtu tā vērtībām, mēs atsaucamies uz indeksu ar dubultām pēdiņām, mēs iegūsim vērtību nulle, mēs redzēsim savu darbību interaktīvajā konsolē: