Врсте, вредности и изрази у Луа

Преглед садржаја
Луа То је динамичан језик када су у питању типови података и њихове вредности, односно не постоје дефиниције било ког типа при креирању променљиве и специфицирању да је то низ, број или чак и логичка вредност.
Изрази иду руку под руку са вредностима, они нам омогућавају да са њима извршавамо операције, које могу бити у распону од аритметичких, релационих, па чак и условних операција како би нашим програмима дале динамику, али пре него што пређемо на изразе, да видимо врсте вредности које поседујемо у Луа и како они функционишу унутар језика.
Ин Луа Свака вредност учитава свој тип, у којем можемо пронаћи осам различитих типова: нил, боолеан, нумбер, стринг, усердата, фунцтион, тхреад анд табле, где са функцијом тип () можемо знати назив типа дате вредности. Погледајмо једноставан пример како Луа тумачити ово према тип ():

Као што видимо, тип је дат вредношћу коју учитава и назначена функција нам помаже да сазнамо шта је то, можемо видети да је чак и у последњем случају променљиве Х резултат стринг, а то је зато што је функција тип () је увек низ. Пошто смо видели како Луа тумачимо типове података, погледајмо сваки од њих детаљно:
НулаОво је врста вредности чије је главно својство да се разликује од других вредности. Као што смо видели у прошлом водичу, глобална променљива подразумевано има вредност нула и ако желимо да је елиминишемо, додељујемо ову вредност, чак можемо да је употребимо и за представљање одсуства корисне вредности.
БоолеанЛогичке вредности, као и у осталим програмским језицима, имају две вредности, тачну и лажну, али за разлику од других језика, ова врста података нема укупан домен над условима, јер било који може представљати услов.
БројОвај тип података представља и целе бројеве и децимале. Луа нема тип целобројне вредности и не треба му, будући да Луа може представљати било који 32-битни цео број без проблема са заокруживањем, али најзанимљивије у вези са језиком је то што га можемо компајлирати да користи други тип, попут дугих целих бројева или флоат-а, што је прилично корисно у случајевима када хардвер нема подршка за децимале.
НизКонци у Луа Они су низ знакова, то су вредности које су непроменљиве, односно не можемо променити знак унутар низа. Њима управља аутоматска меморија језика као и остали објекти, а додела низа може бити са двоструким или појединачним наводницима.
СтоТип података табеле имплементира асоцијативни низ, који је низ који се може индексирати не само бројевима, већ и низовима или било којом другом вредношћу језика, осим нил. Табеле немају фиксну величину тако да можемо укључити онолико елемената колико желимо и помоћу њих можемо представљати модуле, пакете и објекте. Коначно, његово стварање је једноставно као и коришћење заграда {} при иницијализацији стола.
КарактеристикеФункције у Луа имају прилично необично понашање, можемо их сачувати у променљивим, проследити као аргументе другим функцијама и вратити чак и као резултате, где Луа ове функције можете позвати написане и на самом језику, као и на Ц.
Кориснички подациВрста података кориснички подаци омогућава складиштење у променљивим Луа произвољне информације из Ц. Нема унапред дефинисане операције на Луа, са изузетком тестова додељивања и једнакости, где је главна функција овог типа представљање нових типова као таквих које је креирала апликација или библиотека написана на Ц.
Као што видимо, типови се не разликују много од онога што можемо пронаћи у актуелним језицима, али оно што је сигурно је да је једноставност коју морамо представити много већа, онда хајде да видимо улогу израза и како их можемо користити са нашим вредностима.
Аритметичке операције су изузетно важне за било који програм и важно је знати како се њима рукује и која ограничења могу постојати у језику који користимо. Луа подржава конвенционалне операторе на које смо навикли: сабирање, одузимање, множење, дељење, експоненцијално, проценат и негација.
Погледајмо онда једноставан код где демонстрирамо употребу неких оператора Луа:
 к = 8 + 5 и = 9 - 2 испис (к * и% 0,01)
Користимо сабирање, одузимање и дељење са 2 као резултат операције множења, да видимо како ће одговор тумача када покренемо наш код кроз конзолу:

ЕНЛАРГЕ

Као што видимо, Луа се не разликује много од осталих језика за аритметичке операције, али њена једноставност за писање кода олакшава руковање за развој програма.
Луа као и други језици, даје нам релационе операторе као што су веће од>, мање од <, мање или једнако =, једнако-једнако == и негација ~ =. Видимо да се једино разликује порицање, али након што се навикнемо, неће бити проблема с његовом употребом.
Сви ови оператори могу вратити труе или фалсе, где чак можемо применити и оператор једнакости и оператор негације на две вредности. Ова поређења Луа ради их на основу типа поред других фактора, да видимо у следећем коду где се поређење врши на основу истог објекта:
 а = {}; а.к = 1; а.и = 0 б = {}; б.к = 1; б.и = 0 ц = а
Ако, ако упоредимо исто, резултат операције нам даје да је а једнако ц, али да је а различито од б, то је због чињенице да су исти објект. Осим тога, морамо бити веома опрезни при поређењу различитих типова, јер се на пример 6 разликује од "6" и ако радимо нешто попут "3" <"8" Луа то ће дати грешку пошто мешамо жице.
Логички оператори у Луа они су и, или и нису. Када се направи поређење помоћу ових оператора, први аргумент ће бити враћен ако је нетачан, у супротном ће бити враћен други.Да видимо низ примера у интерактивној конзоли да демонстрирамо горе поменуто.

ЕНЛАРГЕ

Да бисте извршили повезивање у Луа је кроз двоточку, мало мења синтаксу у односу на друге језике, али на исти начин је прилично једноставно, али Луа Увек иде мало даље и ако пронађе број и постоји операција повезивања, претвара га у низ, да видимо два једноставна примера ове операције:

ЕНЛАРГЕ

Као што видимо за први случај, операција се изводи без икаквих проблема, а за други случај имамо бројеве, Луа аутоматски их претвара у низ. Важно је запамтити да су низови непроменљиви, па ова операција увек ствара нови низ без икаквих измена у његовом операнду.
Коначно, имамо конструкторе, који су изрази који нам омогућавају креирање и иницијализацију табела, за које је ова функција јединствена Луа и то је један од његових најсвестранијих и најснажнијих механизама. Без проблема можемо користити празан конструктор само са заградама {} што ће створити празну табелу као такву. Они такође могу покренути низове или листе, погледајмо пример:
 дана = {"Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"}
Овде стварамо листу са данима у недељи и ако желимо да приступимо њеним елементима навођењем индекса истих које имамо, на пример за добијање четвртка то би био индекс број 5 или недеља би био број 1, Од Луа Не иницијализује се на нулу као остали језици, хајде да видимо како изгледа када га покренемо у нашој конзоли:

Такође можемо креирати сопствене асоцијативне низове типа кључне вредности:
низ = {к = 26, и = 67}
Али важно је да бисмо приступили његовим вредностима, референцирали индекс са двоструким наводницима, добићемо вредност нил, видимо нашу операцију у интерактивној конзоли:

Овим завршавамо водич, где смо то могли видети Луа проширује своју једноставност на све ивице које га сачињавају, од динамичких типова којима рукује, једноставног начина додељивања задатака, руковања релационим и логичким операторима, као и пружајући нам изузетно корисне алате као што су повезивања и конструктори искуство са језиком што пријатније и пријатније.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave