Преглед садржаја
У прошлим водичима видели смо како Луа омогућава руковање и вредностима и типовима на динамичан начин, увек се истичући својом једноставношћу и свестраношћу при извођењу ових операција.Али то није све Луа нуди у смислу једноставности, конвенционално подржава декларације које можемо пронаћи на језицима као у Ц. или ПасцалТамо гдје ове декларације подједнако укључују додјеле и структуре управљања, можемо чак наићи на неке неконвенционалне начине, попут вишеструких додјела и локалних декларација.
Задаци у Луа Изузетно су једноставни и раде на промени вредности променљиве у одређено време у оквиру нашег програма, погледајмо једноставан пример помоћу интерактивне конзоле Луа, које можемо унети постављањем резервисане речи луа На терминалу:
Луа чак можете подесити број вредности за број присутних променљивих, на пример ако је листа вредности мања од листе променљивих, додатним променљивим се даје тип вредности нула подразумевано као његове вредности, да видимо пример овог процеса:
Поред глобалних променљивих, Луа Подржава локалне променљиве које, за разлику од глобалних, имају ограничен опсег, који зависи од блока у коме су декларисане, да видимо како декларишемо локалну променљиву:
к = 10 лоцал и = 1 вхиле и <= к до лоцал к = и * 2 принт (к) и = и + 1 енд иф и> 20 тхен лоцал кк = 20 принт (к + 2) елсе принт (к) енд штампа (к)Ако извршимо исто у нашем терминалу, видећемо како резултат можда није онакав какав очекујемо, а то је зато што имамо различите блокове у којима користимо променљиве, да видимо резултат:
до лоцал вар1 = 16 лоцал вар2 = вар1 + 20 к = 5 и = к + вар1 енд - Овде завршава опсег вар1 и вар2 принт (к, и) принт (вар1, вар2)Када га извршимо у нашем терминалу, видећемо да су променљиве к и и приказане без проблема јер су глобалне, али за вар1 и вар2 њихов опсег завршава блоком до-енд, Хајде да видимо:
Управљачке структуреКао и остали програмски језици, Луа пружа нам скуп контролних структура које можемо користити у нашим програмима, користећи добро познате ако да се носи са условима и док, понављање И за за итеративне петље, где осим понављање који има експлицитни терминатор све док а остали који се завршавају са крај.
Као и у већини програмских језика, декларација ако проверава стање и извршава део онда или део елсе, где ово друго може бити опционално, погледајмо скуп ових услова како се види у нашим програмима:
ако је вар1 <0, онда је вар1 = 0 крај ако је вар1 мак линија, тада прикажи () линије = 0 крајОвде имамо три врсте операција, основну са онда, користећи ретурн за враћање вредности према услову и нешто потпунијем делу кода који позива функцију. Осим овога можемо писати ако угнежђено коришћењем елсеиф, што нас штеди од потребе да користимо више Крајеви, да видимо како то изгледа:
ако је операција == " +" онда је резултат = а + б елсеиф операција == " -" онда резултат = а - б елсеиф операција == " *" онда је резултат = а * б елсеиф операција == "/" онда је резултат = а / б елсе еррор ("Инвалид оператион") ендВажно је напоменути да ово није само оптималније, већ је и потребно Луа нема декларације типа прекидач па ће ова врста угнежђених услова бити прилично честа у нашим програмима.
Као и на другим језицима, Луа прво процените стање док, ако је услов нетачан, петља се завршава и у супротном се извршавају следећи редови кода и процес се понавља све док услов није лажан, да видимо једноставан пример који то илуструје:
локални и = 1 док вар1 [и] не штампа (вар1 [и]) и = и + 1 крај
Ова изјава за разлику од док дозвољава нам да поновимо код унутар услова све док не буде истинит, при чему се чак и овај код може извршити бар једном пошто се евалуација услова врши на крају, да видимо пример:
поновите ред = ос.реад () док линија ~ = "" испис (линија)
Што се тиче итеративних циклуса за, Луа има две његове варијанте, за нумеричке и генерички за. Погледајмо синтаксу нумеричког за:
за вар = екп1, екп2, екп3 до крајаОва петља ће извршити нешто за сваку вредност вар фром екп1 све док екп2 Користећи екп3 као вредност за повећање вар или смањење, ако га не укључимо Луа подразумевано претпоставља да иде један по један, да видимо детаљнији пример ових циклуса:
за вар = 1, ф (к) уради штампање (вар) крај за вар2 = 10,1, -1 уради штампање (вар2) крајКако видимо да је његова примена прилично једноставна и омогућава нам да имплементирамо корисне итеративне циклусе у наше програме, сада да видимо синтаксу за генерички за:
фор и, вар ин ипаирс (арраи) до принт (вар) ендОвај циклус користи функцију коју нам даје Луа позив ипаирс, који је итератор низа, гдје за сваку итерацију и узима индекс, док вар добија вриједност повезану с тим индексом.
Као што видимо унутрашње изјаве Луа Не разликују се много од других језика, међутим језик додаје ту додатну једноставност која нам даје много брже учење његове синтаксе и много ефикаснију употребу. Овим смо завршили овај водич, где смо научили задатке и контролне структуре унутар Луа, додајући тако још један слој знања када је у питању овај једноставан, али моћан језик.