Tipuri, valori și expresii în Lua

Cuprins
Lua Este un limbaj dinamic atunci când vine vorba de tipurile de date și valorile acestora, adică nu există definiții de niciun tip atunci când se creează o variabilă și se specifică că este un șir, un număr sau chiar un boolean.
Expresiile merg mână în mână cu valorile, acestea ne permit să efectuăm operații cu ele, care pot varia de la operații aritmetice, relaționale și chiar condiționale pentru a da dinamism programelor noastre, dar înainte de a trece la expresii să vedem tipurile de valori care deținem în Lua și modul în care funcționează în limbă.
În Lua Fiecare valoare își încarcă propriul tip, în care putem găsi opt tipuri diferite dintre acestea: zero, boolean, număr, șir, date utilizator, funcție, fir și tabel, unde cu funcția tip () putem cunoaște numele tipului valorii date. Să vedem un exemplu simplu de cum Lua interpretează acest lucru în conformitate cu tip ():

După cum vedem, tipul este dat de valoarea pe care o încarcă și funcția desemnată ne ajută să știm ce este, putem vedea că chiar și în ultimul caz al variabilei H rezultatul este șir și acest lucru se datorează faptului că funcția tip () este întotdeauna șir. De când am văzut cum Lua interpretează tipurile de date, să analizăm fiecare dintre acestea în detaliu:
ZeroAcesta este un tip de valoare a cărei proprietate principală trebuie să fie diferită de alte valori. După cum am văzut în ultimul tutorial, o variabilă globală are valoarea implicită zero și dacă vrem să o eliminăm, atribuim această valoare, putem chiar să o folosim pentru a reprezenta absența unei valori utile.
BooleanValorile booleene, ca și în restul limbajelor de programare, au două valori, adevărat și fals, dar spre deosebire de alte limbaje, acest tip de date nu are un domeniu total peste condiții, deoarece oricare poate reprezenta o condiție.
NumărAcest tip de date reprezintă atât cifre întregi, cât și zecimale. Lua nu are un tip de valoare întreagă și nu are nevoie de el, deoarece Lua poate reprezenta orice număr întreg de 32 de biți fără probleme de rotunjire, dar cel mai interesant lucru despre limbaj este că îl putem compila pentru a utiliza un alt tip, cum ar fi numere întregi lungi sau flotante, ceea ce este destul de util pentru cazurile în care hardware-ul nu are sprijin pentru zecimale.
ŞirCoardele din Lua Sunt o secvență de caractere, sunt valori imuabile, adică nu putem schimba un caracter în cadrul șirului. Ele sunt gestionate de memoria automată a limbajului, ca și restul obiectelor, iar atribuirea șirului poate fi cu ghilimele duble sau simple.
MasaTipul de date al tabelului implementează o matrice asociativă, care este o matrice care poate fi indexată nu numai cu numere, ci cu șiruri sau orice altă valoare a limbii, cu excepția zero. Tabelele nu au o dimensiune fixă, astfel încât să putem include câte elemente dorim și cu ele putem reprezenta module, pachete și obiecte deopotrivă. În cele din urmă, crearea sa este la fel de simplă ca și utilizarea parantezelor {} la inițializarea mesei.
CaracteristiciFuncțiile din Lua au un comportament destul de ciudat, le putem salva în variabile, le putem transmite ca argumente către alte funcții și le putem returna chiar și ca rezultate, unde Lua poți apela aceste funcții scrise atât în ​​limba în sine, cât și în C.
Datele utilizatoruluiTipul de date datele utilizatorului permite stocarea în variabile de Lua informații arbitrare de la C. Nu are operații predefinite pe Lua, cu excepția testelor de atribuire și egalitate, unde funcția principală a acestui tip este de a reprezenta noi tipuri ca atare create de o aplicație sau o bibliotecă scrisă în C.
După cum putem vedea, tipurile nu diferă mult de ceea ce putem găsi în limbile actuale, dar cert este că simplitatea pe care trebuie să le reprezentăm este mult mai mare, atunci să vedem rolul expresiilor și modul în care le putem folosi cu valorile noastre.
Operațiile aritmetice sunt extrem de importante pentru orice program și este important să știm cum să le gestionăm și ce restricții pot exista în limba pe care o folosim. Lua susține operatorii convenționali cu care suntem obișnuiți: adunare, scădere, multiplicare, divizare, exponențială, procentuală și negativă.
Să vedem apoi un cod simplu în care demonstrăm utilizarea unor operatori de Lua:
 x = 8 + 5 y = 9 - 2 tipărire (x * y% 0,01)
Folosim adunarea, scăderea și împărțirea cu 2 pe rezultatul unei operații de multiplicare, să vedem cum răspunde interpretul atunci când rulăm codul nostru prin consolă:

MARI

După cum putem vedea, Lua nu diferă mult de restul limbajelor pentru operații aritmetice, dar simplitatea sa de scriere a codului îl face destul de ușor de manevrat pentru dezvoltarea programului.
Lua ca și alte limbi, ne oferă operatori relaționali, cum ar fi mai mare decât>, mai mic decât <, mai mic decât sau egal =, egal-egal == și negație ~ =. Vedem că singurul care poate diferă este negarea, dar după ce ne-am obișnuit, nu vor mai exista probleme cu utilizarea acesteia.
Toți acești operatori pot returna adevărat sau fals, unde putem aplica chiar și operatorul de egalitate și operatorul de negare la două valori. Aceste comparații Lua le face pe baza tipului în plus față de alți factori, să vedem în următorul cod unde comparația se face pe baza aceluiași obiect:
 a = {}; a.x = 1; a.y = 0 b = {}; b.x = 1; b.y = 0 c = a
Dacă comparăm același lucru, rezultatul operației ne oferă că a este egal cu c, dar că a este diferit de b, acest lucru se datorează faptului că sunt același obiect. În plus, trebuie să fim foarte atenți atunci când comparăm diferite tipuri, deoarece de exemplu 6 este diferit de „6” și dacă facem ceva de genul „3” <„8” Lua va da o eroare deoarece amestecăm șirurile.
Operatorii logici din Lua ele sunt și și, sau și nu. Când se face o comparație folosind acești operatori, primul argument va fi returnat dacă este fals, altfel al doilea va fi returnat. Să vedem o serie de exemple în consola interactivă pentru a demonstra cele menționate anterior.

MARI

Pentru a efectua concatenarea în Lua este prin două puncte, schimbă puțin sintaxa față de alte limbi, dar în același mod este destul de simplu, dar Lua Merge întotdeauna puțin mai departe și dacă găsește un număr și există o operație de concatenare, îl convertește într-un șir, să vedem două exemple simple ale acestei operații:

MARI

După cum vedem pentru primul caz, operația este efectuată fără nicio problemă, iar pentru al doilea caz avem numere, Lua le convertește automat în șir. Este important să ne amintim că șirurile sunt imuabile, astfel încât această operație creează întotdeauna un șir nou, fără a aduce modificări operandului său.
În cele din urmă, avem constructorii, care sunt expresii care ne permit să creăm și să inițializăm tabele, această caracteristică este unică pentru Lua și este unul dintre cele mai versatile și puternice mecanisme ale sale. Putem folosi un constructor gol fără nicio problemă doar cu parantezele {} care va crea un tabel gol ca atare. Acestea pot inițializa și tablouri sau liste, să vedem un exemplu:
 zile = {"Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"}
Aici creăm o listă cu zilele săptămânii și dacă vrem să accesăm elementele sale specificând indexul aceluiași pe care îl avem, de exemplu pentru a obține joi ar fi numărul de index 5 sau duminică ar fi numărul 1, de cand Lua Nu inițializează la zero la fel ca restul limbilor, să vedem cum arată când îl rulăm în consola noastră:

De asemenea, putem crea propriile noastre matrici asociative de tipul cheie de valoare:
matrice = {x = 26, y = 67}
Dar este important ca, pentru a accesa valorile sale, să facem referința la index cu ghilimele de repaus dublu, vom obține valoarea zero, vom vedea funcționarea noastră în consola interactivă:

Cu aceasta încheiem tutorialul, unde am putut vedea asta Lua își extinde simplitatea la toate marginile care îl compun, de la tipurile dinamice pe care le gestionează, modalitatea simplă de a efectua sarcini, gestionarea operatorilor relaționali și logici, precum și furnizarea de instrumente extrem de utile, cum ar fi concatenări și constructori pentru a face experiență cu limba cât mai plăcută și mai plăcută posibil.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave