Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Lua është një gjuhë programimi komanduese. Lua për sythe

Lua(nga portugalishtja për "hënë") është një gjuhë programimi e interpretuar e zhvilluar nga Grupi i Teknologjisë së Grafikës Kompjuterike të Universitetit Katolik Papnor të Rio de Zhaneiros në Brazil. është falas, me kod të hapur tekstet burimore në gjuhën C. Për sa i përket aftësive dhe zbatimit, është më afër JavaScript-it, por, nga këndvështrimi im, është më fleksibël dhe ka mundësi më të gjera. Përkundër faktit se Lua nuk ka koncepte të tilla si "klasë" ose "objekt", mbi bazën e tij është mjaft e mundur të ndërtoni programe OOP të bazuara në tabela meta, të cilat gjithashtu ju lejojnë të zbatoni, për shembull, mbingarkimin e operacioneve.

Në këtë tutorial, unë dua t'ju jap disa nga më informacion i pergjithshem në lidhje me këtë gjuhë, dhe në mësimet e ardhshme do t'ju tregoj në praktikë se si mund të përdorni gjuhën Lua për të zgjidhur problemet e programimit të lojërave.

Lua historia

Siç thashë më lart, Lua u zhvillua nga një nga divizionet e Universitetit Katolik të Rio de Zhaneiros. Ndodhi në vitin 1993. Por që nga ai moment, versionet e reja të Lua u zhvilluan në mënyrë aktive dhe u lëshuan periodikisht - u bë më i përshtatshëm, më i shpejtë, më funksional. V ky moment version i qëndrueshëm Lua është 5.1, megjithatë versioni alfa 5.2 është tashmë i disponueshëm.

Llojet Lua

V Lua ka tetë lloje bazë të të dhënave:

  • zero (i papërcaktuar)
  • boolean (boolean)
  • numër (numerik)
  • varg (varg)
  • funksioni (funksioni)
  • të dhënat e përdoruesit (të dhënat e përdoruesit)
  • filli
  • tavolinë (tavolinë)

Lua është një gjuhë e përcaktuar në mënyrë dinamike. Çdo variabël në Lua mund të përmbajë vlera të cilitdo prej llojeve të listuara më sipër. Të gjitha vlerat në Lua mund të ruhen në variabla, të përdoren si argumente gjatë thirrjes së funksioneve dhe të kthehen si rezultat i ekzekutimit të funksionit.

tavolina Lua

Tabelat janë më së shumti lloj i rëndësishëm të dhënat në Lua - tabelat janë bazë për ruajtje dhe përdorim llojet me porosi të dhëna: struktura, vargje, lista, grupe etj. zbatohen në Lua nëpërmjet tabelave. Një tabelë në Lua është një grup çiftesh [Key, Vlera], ku një vlerë e çdo lloji përveç zero mund të përdoret si çelës.

Pajisja Lua

Ashtu si shumë gjuhë programimi të interpretuara, zbatimi Lua ka një përpilues të veçantë nga burimi në bajtkod të ekzekutueshëm dhe një makinë virtuale për të ekzekutuar bajtkodin e krijuar. Në rastin e Lua, bytekodi nuk është udhëzim i makinës, por " procesor virtual Lua ”me regjistra të shumtë, gjë që përmirëson efikasitetin e ekzekutimit. Makina virtuale Lua përdor gjithashtu parimin e mbledhjes së mbeturinave (i ngjashëm me Java ose .NET), i cili i lejon programuesit të mos shqetësohet për ndarjen / heqjen e kujtesës - këtë e bën vetë interpretuesi.

Për detyrat kritike për misionin, ekziston një përpilues Lua: i cili ju lejon të merrni kodin më të shpejtë.

Ku përdoret Lua

Lua, gjatë viteve të ekzistencës dhe zhvillimit të saj, ka fituar zemrat e shumë zhvilluesve të softuerit dhe në ditët e sotme përdoret në një gamë të gjerë fushash programimi: skriptim Lojra kompjuterike(krizë, Larg qaj, Diablo 3, S.T.A.L.K.E.R.), në serverët e lojërave MMO (World of Warcraft, Allods Online), në paketat grafike (për shembull, në Adobe Photoshop Lightroom), në motorët e lojërave dhe dizajnerët e lojërave (NË NË VEND), për programimin e GUI-së së disa aplikacioneve (i njëjti Photoshop Lightroom) dhe në shumë detyra të tjera.

Dokumentacioni Lua

Në përgjithësi, ka shumë dokumentacion, si dhe shembuj të përdorimit, në rrjet. Prandaj, nuk do të hyj thellë në këtë temë. Unë do të them vetëm se mund t'ju këshilloj të lexoni

Prezantimi

Ky udhëzues është menduar për ata me përvojë të kufizuar me LUA. Ne do të mbulojmë bazat se si të kodoni, do të ndërtojmë blloqe që ju të krijoni kode më komplekse dhe do të ofrojmë disa shembuj. Manuali është shkruar në mënyrë të tillë që të vihet në praktikë menjëherë. Prandaj, duhet të hapni Tabletop Simulator dhe redaktorin tuaj LUA për ta ndjekur.

Ky është tutoriali i parë në këtë seri. E dyta është Mësoni Lua Më shumë. E treta është një grup funksione të dobishme quajtur Funksionet e të mësuarit Lua.

Përpara shtypjes së tastit të parë

Së pari, unë do të rekomandoja shumë instalimin e Atom nëse do të skriptoni në Tabletop Simulator. Ai e di se cilat funksione mund të përdoren dhe do të importojë / eksportojë kodin në / nga TTS.

Pastaj ju duhet të shtoni në faqerojtësit. Ju do të lidheni me këtë faqe shpesh pasi të filloni të shkruani skriptet tuaja. Këtu do të gjeni funksione të veçanta në Tabletop Simulator dhe si funksionojnë ato. Më shpesh do të përdorni faqet API dhe Object, nga të paktën, në përvojën time.

Trajnimi

Kur ruani skriptet tuaja në Tabletop, ai do të përdorë tuajin ruajtja e fundit dhe pastaj ngarkoni skriptet në të. Prandaj, për çdo skenar që keni ndërmend të shkruani, do t'ju duhet të bëni sa më poshtë:

  • Përgatitni tabelën ashtu siç dëshironi.
  • Ruani tabelën.
  • Ngarkoni tabelën.
Për këtë ushtrim, merrni një tabelë bosh dhe krijoni dy objekte (kam përdorur një bllok katror dhe një bllok drejtkëndor) dhe një damë të kuqe.

Shtypeni përsëri sepse sigurisht që do ta bëni.

KREDI SHTES: Kur krijoni tabela, ka disa mënyra për ta bërë këtë. Metoda e përdorur këtu ishte për të siguruar qartësi vizuale. Megjithatë, një mënyrë për të krijuar parametra të butonit si ky merr shumë hapësirë ​​nëse keni shumë butona. Unë preferoj t'i dizajnoj tabelat e mia në mënyrë të tillë që të kursej hapësirë, por jo të kaloj kufirin e duhur. Duke përdorur shembullin tonë, unë do të krijoja një tabelë parametrash si kjo:

butoni_parametrat = (click_function = "buttonClicked", funksioni_owner = zero, label = "Shtypi Mua", pozicioni = (0,0.8,0), rrotullimi = (0,0,0), gjerësia = 500, lartësia = 500, madhësia_fontit = njeqind )

KREDI SHTES: Kjo është koha e përsosur për të filluar të luani gjera te ndryshme të cilat mund t'i bëni me objekte. Shkoni te faqja e Objekteve në bazën e njohurive dhe provoni materialin. Lëvizni objektet, bëjini të ndryshojnë pozicionet, ndryshojnë ngjyrat e tyre, çfarëdo që mendoni.

KREDI SHTES: Përveç kësaj, çdo herë që shtypet butoni, funksioni_klikim ekzekutohet me dy parametra. E para është një referencë për një objekt, në veçanti një referencë për objektin me të cilin lidhet butoni. E dyta është ngjyra (për shembull, "Blu" - blu) në formatin e linjës, ngjyra e lojtarit që shtypi butonin.

5) Pohimi Boolean

Krahasimi i ndryshueshëm

Përsëri hiqni të gjitha skriptet brenda funksionit të butonit Klikoni (). Ne do të krijojmë një ndryshore të re dhe më pas do ta modifikojmë atë. Variabla e re do të jetë e tipit Boolean. Vlerat Boolean mund të jenë vetëm të vërteta, false. Vlerat Boolean shkruhen gjithmonë me shkronja të vogla. Së pari, ne do të krijojmë variablin tonë nën GUID-të e objekteve dhe damëve tanë.

e vërtetëOrFalse = e vërtetë

Më pas, në butonin "Clicked", do të vendosim një logjikë për të kontrolluar nëse trueOrFalse është e vërtetë. Nëse është e vërtetë, do të printojë se është e vërtetë dhe do ta kalojë në false. Nëse butoni shtypet përsëri, ai do të shtypë se është False dhe do të kalojë vlerën në True.

nëse trueOrFalse atëherë printo ("trueOrFalse was true.") --trueOrFalse ishte e vërtetë. trueOrFalse = false other print ("trueOrFalse was false.") --trueOrFalse was false. e vërtetëOrFalse = fundi i vërtetë

Mund ta shkruajmë gjithashtu si "nëse trueOrFalse == e vërtetë atëherë", por kjo është fakultative. Mos harroni se deklaratës IF duhet t'i jepet një vlerë boolean. Dhe meqenëse trueOrFalse është tashmë një prej tyre, ne mund të heqim dorë nga "== true".

Një lak është një pjesë e kodit që mund të ekzekutohet disa herë. Ky është një nga elementët më kompleks që do të përdorni në LUA. Ata shpesh vijnë me tabela, duke ju lejuar të ekzekutoni kodin për çdo rekord në tabelë.

Ky është një lloj tjetër - çifte. Çiftet nevojiten për tabelat pa çelësa numerikë dhe çiftet nevojiten për tabelat me çelësa numerikë vijues (vargje). ipairs vjen në rregull, me çifte mund të shkojnë në çdo mënyrë.

Lua është një gjuhë programimi e krijuar nga Roberto Jeruzalimski, Valdemar Selis dhe Luis Enrique de Figueiredo. Është e vështirë të besohet se një gjuhë kaq popullore mund të ishte krijuar jo diku në Silicon Valley ose MIT, por në Brazilin me diell. Në një vend që, me sa duket, ndodhet mjaft larg qendrave të përqendrimit të IT. Megjithatë, në një nga divizionet e Universitetit Katolik të Rio de Zhaneiros, ata ishin në gjendje të krijonin një fleksibël dhe gjuhë e fuqishme që tani gjen zbatim të gjerë në shumë fusha.

E gjitha filloi me zhvillimin e një gjuhe ndihmëse për kompania e naftës PETROBRAS. Inxhinierëve të naftës u duhej një front grafik për të përpunuar të dhënat për të simuluar procese të caktuara. Në të njëjtën kohë, pajisjet mund të jenë shumë të ndryshme - PC DOS, UNIX, Macintosh, kështu që shumë gjuhë ekzistuese (Perl, për shembull) thjesht nuk përshtateshin, pasi ato punonin vetëm në një nga këto sisteme. Në këtë fazë, u zhvillua një gjuhë e quajtur DEL (gjuhë e hyrjes së të dhënave). Me kalimin e kohës, aftësitë e kësaj gjuhe filluan të mungojnë, kështu që ajo u zhvillua gjuhë e re quhet SOL (gjuhë e thjeshtë e objektit). Dhe më në fund, në 1993, zhvilluesit kuptuan se ato mund të kombinoheshin në një gjuhë programimi të plotë, e cila u quajt Lua (në portugalisht, Sol është dielli dhe Lua është hëna). Meqë ra fjala, në vitin 1996, Robert Jeruzalimski dhe autorë të tjerë të gjuhës vendosën t'i tregonin botës për punën e tyre dhe dërguan një artikull për Luan në revistën "Software: Practice & Experience". Më vonë, Lua u botua në revistën "Dr. Dobb's", nga e cila mësoi një nga zhvilluesit kryesorë të lojërave aventureske në LucasArts. Duke vendosur të përdorte Lua-n në vend të gjuhës së tyre të shkrimit, ai u mahnit nga thjeshtësia dhe efikasiteti i saj. Si rezultat, pjesa më e madhe e lojës që po zhvillohej në atë kohë u rishkrua në Lua, gjë që kontribuoi në rritjen e popullaritetit të saj.

Filozofia e gjuhës Lua

Mbi të gjitha, ideologjia e Luas është e ngjashme me JavaScript. Për shembull, ata të dy kanë një model prototip për zbatimin e OOP. Megjithatë, Lua është një gjuhë shumë më fleksibël dhe më e fuqishme. Lua përdor Makine virtuale dhe një grumbullues mbeturinash, gjë që e bën atë më të ngjashëm me Java, por kjo nuk e pengon atë të ruajë thjeshtësinë dhe elegancën e saj.

Gjuha Lua bazohet në tabela të zbatuara duke përdorur vargje shoqëruese. Një tabelë këtu nënkupton një grup të dhënash, ku secili nga çelësat unik ka vlerën e vet. Duke përdorur tabelat në Lua, ju mund të përfaqësoni pothuajse çdo të dhënë - grupe të zakonshme, grupe, tabela simbolesh etj. Funksionet mund të përshkruhen edhe në fushat e tabelës. E thënë thjesht, nëse dëshironi që një personazh ose objekt të shfaqet në lojën tuaj të preferuar, atëherë thjesht duhet të dini emrin e tij në mënyrë që të shtoni një funksion në tabelë për të krijuar këtë objekt dhe të futni koordinatat e botës së lojës në të cilën duhet të shfaqen.

Vlen gjithashtu të përmenden tabelat meta - tabela që ju lejojnë të ndryshoni sjelljen e tabelave të tjera. Për shembull, përcaktoni nëse shtimi i vlerave jo numerike është i pranueshëm në një situatë të caktuar. Ose, përcaktoni fillimin e "grumbullimit të mbeturinave" (pastrimi i kujtesës) për ndonjë ngjarje.

Ku përdoret Lua

Edhe pse Lua përdoret edhe në aplikacione industriale, kjo gjuhë ka fituar popullaritetin më të madh në zhvillimin e lojërave. Meqenëse mund të jetë e vështirë për zhvilluesit të bëjnë ndryshime në motorin e lojës dhe projektuesit e lojërave vazhdimisht duhet të bëjnë ndryshime në mënyrën se si funksionojnë nivelet ose personazhet, Lua është thjesht i pazëvendësueshëm këtu. Është shumë e lehtë të përshkruash ndërveprimin midis lojtarëve, NPC-ve të programit (fshatarët në Skyrim) ose sjelljen e shefave duke përdorur skriptet, të cilat më pas mund të ndryshohen shpejt pa ndikuar në motor.

Loja më e famshme që përdor Lua tani është, natyrisht, World of Warcraft. Ndërfaqja WoW (menutë, biseda, etj.) janë të shkruara në të. Lua u përdor edhe në lojëra si Crysis, King's of Bounty, Warhammer, Allods Online, CS, Stalker, The Witcher, Sim City, Far Cry, Civilization V etj.

Gjithashtu, shtojcat për nmap, wireshark, nginx ose bots për Telegram shpesh shkruhen në Lua. Wikipedia gjithashtu planifikon të përdorë Lua-n për t'u futur në MediaWiki (mund ta provoni në versionin anglisht).

Lua përdoret gjithashtu në observatorë të kërkimit të astrofizikës dhe në universitete të mëdha në mbarë botën (për shembull, në Universitetin Teknik të Berlinit). Lua është bërë gjithashtu një gjuhë programimi kombëtare në vendlindjen e saj dhe përdoret nga shumë kompani lokale dhe qendra kërkimore në shumicën e rasteve. zona të ndryshme aktivitetet.

Kompleksiteti i të mësuarit Lua

Lua është mjaft e lehtë për t'u mësuar. Ka shumë burime dhe mësime video për të në rrjet. Plus, gamification ndihmon shumë. Nëse mund të krijoni moda Lua në lojën tuaj të preferuar, atëherë provoni të eksperimentoni bota e lojës në procesin e studimit. Kjo do t'ju lejojë të mësoni programimin në një mënyrë argëtuese dhe pa mundim.

Lua pro / kundër

Pluset e Lua përfshijnë:

  • transportueshmëri e mirë. Nëse keni nevojë, për shembull, të transferoni një program nga Windows në Linux, atëherë, me përjashtim të disa bibliotekave specifike të platformës, kodi nuk ka nevojë të ndryshohet shumë.
  • aftësia për të shtuar shpejt një bibliotekë C në një aplikacion Lua
  • lehtësia e vendosjes
  • sintaksë e lehtë
  • Programet Lua konsumojnë pak memorie
  • shpërndahet nën licencën MIT, kështu që mund ta përdorni falas për projekte biznesi

Disavantazhet:

Lua funksionon po aq mirë sa një gjuhë skriptimi. Por më shpesh përdoret në lidhje me gjuhë të tjera, megjithëse është mjaft i aftë të kryejë disa detyra më vete. Prandaj, do t'ju duhet të dini të paktën një tjetër, për shembull, C ose C ++. Sidoqoftë, njohja e Lua-s do të jetë padyshim një plus i madh për ju kur punësoni një zhvillues lojërash.

Teknologjitë e ndërlidhura

LuaJit- Përpilues JIT për Lua. Përdoret për detyra në të cilat koha e ekzekutimit është kritike. Punon rreth gjashtë herë më shpejt se përkthyesi standard.

Dashuria 2Dështë një kornizë popullore për zhvillimin e lojërave 2D në Lua.

Corona SDKështë një kornizë për krijimin e aplikacioneve për iOS dhe Android në Lua. Që nga viti 2015, është shfaqur një version falas.

Kjo seri mësimore që kam konceptuar do të diskutojë gjuhën e programimit Lua. Do të përpiqem ta bëj prezantimin sa më të aksesueshëm për fillestarët dhe do të fokusohem në to. Dmth koduesit me eksperiencë Lua, me shumë mundësi, nuk do të mësojnë asgjë të re nga kjo (jam i sigurt se do të gjejnë vend vetëm për bezdi dhe vërejtje, të cilat, në fakt, janë edhe të mirëpritura nga ana e tyre), por nëse nuk keni të pasur përvojë programimi pas jush, atëherë unë mendoj se ju mund të trajtoni diçka.

E gjithë seria nuk do t'i bindet asnjë sistemi. Mësimet do të prezantojnë në mënyrë sekuenciale një numër konstruksionesh gjuhësore në mënyrë që në mësimin e tretë ose të katërt të mund të shkruani tashmë programet tuaja. Qëllimi im është t'ju shtyj drejt vete studim gjuha, të ndihmoj ta ndjesh dhe jo ta shpjegojë nga A në Z - nëse dëshiron ta zotërosh plotësisht gjuhën, lexo udhëzues referencë(e cila, edhe pse keq, është përkthyer në Rusisht: http://www.lua.ru/doc/). Sa më shpejt të lëvizni nga mësimet "për dummies" në ueb për të studiuar udhëzuesin, aq më mirë.

Nëse diçka nuk është e qartë - sigurohuni që të bëni një pyetje në komente, dhe unë dhe anëtarët e tjerë do të përpiqemi t'ju ndihmojmë.

Lua është një gjuhë programimi popullore, e lehtë për t'u mësuar, e integruar, e interpretuar dhe e shtypur në mënyrë dinamike. Qëllimi i përgjithshëm... Jo, nuk keni nevojë të kuptoni as gjysmën e fjalëve në fjalinë e mëparshme - gjëja kryesore është të dini se ajo është e njohur dhe e pakomplikuar. Nga rruga, ajo ka fituar popullaritetin e saj për shkak të thjeshtësisë dhe madhësisë së vogël të kompletit të shpërndarjes (rreth 150 kilobajt). Skriptet Lua mbështeten sasi e madhe aplikacione, duke përfshirë lojërat. World of Warcraft dhe S.T.A.L.K.E.R. përdorin gjuhën Lua. Motori im i preferuar i lojës do t'ju lejojë të krijoni një shumëllojshmëri lojërash me lehtësi duke përdorur Lua. Siç e shihni, Lua ju hap shumë horizonte!

Përpara se të fillojmë, duhet të konfiguroni një mjedis programimi: domethënë të gjeni një program që pranon kodin Lua që shkruani dhe e ekzekuton atë: interpretuesin. Këtu ka tre opsione:

1. Shkarkoni shpërndarjen zyrtare të Lua nga një nga faqet që i furnizojnë ato.

Nga faqja zyrtare e Lua, mund të shkarkoni vetëm kodet burimore përkthyes. Megjithatë, duke shqyrtuar http://lua.org/download.html nën seksionin Binaries, mund të gjeni lidhje me faqet me skedarë të ekzekutueshëm për Windows. Një prej tyre: . Shkarkoni nga atje një nga arkivat (që përputhet me platformën tuaj: Win32 ose Win64) dhe shpaketoni atë diku, mundësisht në një drejtori me një shteg të shkurtër: si C: \ lua. Që tani e tutje, unë do të supozoj se ju jeni duke përdorur Windows dhe përkthyesi juaj është atje.

Për përdoruesit e sistemeve operative në bazuar në Linux në këtë kuptim, është më e lehtë: ata thjesht duhet të përdorin menaxherin e paketave dhe të instalojnë Lua nga magazinat. Në Debian dhe Ubuntu, kjo bëhet me apt-get install lua, dhe në Fedora, Red Hat dhe derivatet, bëhet me yum install lua. Megjithatë, mos më besoni verbërisht dhe konsultohuni me tuajin sistemi operativ për të zbuluar saktësisht se si e bëni këtë.

2. Përdorni një përkthyes në internet.

Gjendet në http://www.lua.org/demo.html. Në fillim, mund të jetë e mjaftueshme, por më vonë, kur prekim modulet, do të duhet të përdorni versionin offline. Përdorimi i përkthyesit në internet është shumë i thjeshtë: futni programin tuaj në dritare me tekstin dhe klikoni butonin Run. Programi do të ekzekutohet, dritarja Output do të tregojë daljen e programit tuaj, si dhe raportet e gabimeve, nëse ka.

3. Përdorni IDE.

Për shembull ZeroBrane Studio: http://studio.zerobrane.com/. Ka të tjera - kërkoni në internet.

Tani ka dy versione paksa të ndryshme të Lua në qarkullim: 5.1 dhe 5.2. Do të fokusohem më së shumti Versioni i fundit- versioni 5.2, por unë patjetër do të tregoj dallime të rëndësishme midis tij dhe 5.1, pasi kjo e fundit është gjithashtu mjaft e zakonshme. Nga rruga, Lua 5.1 ekzekuton kodin një herë e gjysmë më shpejt se Lua 5.2, kështu që ju e dini.

=== Mësimi # 1 ===

Pra, le të fillojmë. Krijo të izoluar nga skedarë të jashtëm skedarin main.lua në dosje dhe shkruani në të:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
- kryesore.lua -
shtyp (" Përshendetje Botë!")

Pastaj vraponi brenda linja e komandës(mos harroni të cd në direktorinë main.lua):

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
> C: \ lua \ lua.exe main.lua

Si përgjigje, përkthyesi Lua do të nxjerrë:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
Përshendetje Botë!

Në parim, kjo ishte e pritshme. Në program, ne thirrëm funksionin e printimit. Funksioni i printimit merr numër arbitrar parametrat dhe i shfaq ato në mënyrë sekuenciale në ekran. V ky shembull ia kaluam vargun (vargun e personazheve) "Përshëndetje botë!" Ju mund të kaloni po aq mirë si një parametër:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
shtyp (8) - çdo numër dhjetor
- do të dalë: 8

Print (0xDEADBEEF) - numër heksadecimal
- do të dalë: 3735928559

Printimi ("0xDEADBEEF") është një varg, jo një numër! I shihni kuotat?
- do të nxjerrë: 0xDEADBEEF

Print (1.35e-4) - numër me pikë lundruese ( numër thyesor)
- Do të dalë 0.000135. 1.35e-4 duhet të kuptohet si "1.35 shumëzuar
- nga dhjetë në minus shkallën e katërt ", nëse dikush nuk e di.

Print ((198 * 99) -3 * 500 + 14/88) - shprehje
- Do të shfaqë vlerën e shprehjes: 18102.159090909. Jo një alternativë e keqe
- një kalkulator desktop!

Print (198/7, "pleh", 2 ^ 9) - disa parametra të një arbitrare
- lloji. Vlerat e secilit prej tyre do të shfaqen, të ndara me shenja
- skedat:
- 28.285714285714 pleh 512
- Ju lutemi vini re se kuotat rreth plehrave nuk shfaqen!

Printimi (1.35) është dy numra, jo një fraksion dhjetor 1.35!
- Një presje përdoret për të ndarë parametrat.
- Do të nxjerrë:
-- 1 35

Shenja "-" nuk është thjesht një imitim i një vize, e cila futet për bukuri. Shenja "-" në Lua tregon komente: sugjerime për programuesin që injorohen nga interpretuesi dhe synojnë ta bëjnë kodin më të lehtë për t'u kuptuar. Mund të provoni të shkruani në program:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
- shtyp ("asgjë")

Përkthyesi do të mendojë se është një koment dhe nuk do të ndjekë udhëzimet.

Shënim për zonjën: nëse dëshironi të printoni vetëm një rresht, mund ta shkruani thirrjen e printimit si kjo, pa kllapa:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
printoni "Vetëm një varg"

Komoditeti është padyshim i diskutueshëm: vetëm mbani në mend se është e mundur. Sidoqoftë, thirrje të tilla janë të papranueshme:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
print 2 - nuk do të funksionojë, 2 - jo një varg.
printoni 2 * 2 + 6 - për më tepër nuk do të funksionojë

Str = "string !!" - i caktohet ndryshores str vlera "string !!"
- lexoni për variablat më poshtë
print str nuk do të funksionojë as.

Në secilin nga rastet e mësipërme, programi thjesht do të refuzojë të punojë. Kështu, në një thirrje "pa prindër", emri i funksionit mund të pasohet vetëm nga një varg literal (d.m.th., një sekuencë karakteresh të mbyllura në thonjëza) dhe asgjë tjetër. Në të ardhmen do të flas pak më në detaje për këtë veçori, por tani për tani kjo është e mjaftueshme për ju.

Ne cdo gjuhë e mirë programimi është e mundur të deklarohen variabla: kontejnerë të vegjël që mund të përmbajnë çdo të dhënë. Lua e bën këtë në këtë mënyrë:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
<имя_переменной> = <выражение>

Për shembull:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
yll = 8 - Variabli yll tani ruan numrin 8
wars = "buf" - Ndryshorja wars përmban vargun "buf"
jedi = 42/2 - Në variablin jedi - numri 21
luke = yll * jedi - Ndryshorja luke është numri 168 (po, 21 herë 8)

Vlerat e variablave dhe shprehjeve me to mund të shfaqen gjithashtu:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
print (yll, luftëra, jedi, jedi-yll + luke)
- Do të nxjerrë:
- 8 buf 21 181

Thjesht mos u përpiqni të shtoni variablat star and wars - duke u përpjekur të shtoni 8 në "buf" nuk do t'ju bëjë mirë!

Siç duhet ta keni vënë re, emri i një ndryshoreje mund të jetë pothuajse çdo gjë: gjëja kryesore është që ai të mos fillojë me një numër. Seriozisht, madje mund të deklaroni një variabël të quajtur print, dhe më pas funksioni i printimit do të ndalojë së punuari, sepse emri print do t'i referohet ndryshores së sapodeklaruar. Por ekziston një grup fjalësh që janë të ndaluara të përdoren si emra variablash - këto janë fjalë kyçe gjuhësore që nuk i kemi takuar ende, por që ia vlen t'i shikojmë:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
dhe break do other if end
false për funksionin goto if in
jo lokale ose kthimi i përsëritur
pastaj e vërtetë deri kur

Duke krijuar një variabël me një nga këta emra, do të shkaktoni një gabim në program dhe ai definitivisht nuk do të funksionojë. Ju lutemi vini re: në Lua 5.1 fjalë kyçe Nuk ka goto, dhe ju mund të emërtoni një variabël në këtë mënyrë, por më mirë mos e bëni këtë.
Vini re gjithashtu se emrat e variablave janë të ndjeshëm ndaj shkronjave të vogla. Kjo do të thotë se foo, foo, fOO dhe FOO janë katër ndryshore të ndryshme, kështu që nëse keni shkruar emrin e një ndryshoreje shkronja te vogla, dhe më vonë e shkroi me shkronja të mëdha, atëherë, ka shumë të ngjarë, programi nuk do të funksionojë siç duhet.

Dhe tani vetëm pikë e rëndësishme: çfarë ndodh nëse ju, aksidentalisht ose qëllimisht, i referoheni një variabli joekzistent? Në shumicën e gjuhëve të tjera kjo do të shkaktojë një gabim, por në Lua kjo situatë është e pranueshme. Interpretohet sikur një variabël joekzistent ekziston në të vërtetë, por vlera e tij është zero. zero- Mbaje mend këtë fjalë! është një lloj vlere e veçantë në Lua që do të thotë "asgjë". Jo një varg zero ose bosh (një varg si "" - përpiquni ta shfaqni), por thjesht asgjë. Krahasoni këtë me këtë model: janë dy persona, njëri prej tyre ka një llogari bankare, por nuk ka para në të, dhe tjetri nuk ka fare llogari bankare. Në terma Lua, do të konsiderohet se i pari ka 0 dollarë në llogari, ndërsa i dyti ka zero... Dhe as dollarë, por vetëm zero... Shpresoj te mos te kem ngaterruar.

Provoni, për shembull, të ekzekutoni një program si ky:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
- kryesore.lua -
foo = "bar"
shtyp (foo, baz)
- Do të nxjerrë:
- bar zero

Kështu, ndryshorja baz, e cila nuk ekziston por supozohet se është, ka vlerën zero dhe funksioni i printimit e kupton këtë dhe e printon në ekran si vargun "nil". Lua ka metodë e mirë kontrollon ekzistencën e një ndryshoreje: nëse vlera e një ndryshoreje nuk është zero, atëherë ajo të paktën deklarohet. Përndryshe, ju mund të deklaroni në mënyrë eksplicite një variabël si zero:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
cool_var = zero

Kjo mund të bëhet, dhe megjithëse mund të duket budallallëk në shikim të parë, ndonjëherë bëhet. Në mësimet vijuese, do të mësoni se kush dhe pse, dhe ndoshta do të filloni të bëni të njëjtën gjë. Ndonjëherë, sigurisht.
Kini kujdes me zero: mund të printoni zero, por mund të bëni me të. veprimet aritmetikeështë e ndaluar! Kjo do të thotë, nëse ikën me print (nil), një konstrukt si 99 + zero do të sjellë një gabim, edhe nëse doje që 99 + zero të ishte 99. Më besoni, edhe unë u mërzita kur e mora vesh.

Përmbledhje:
1. Mësuam për funksionin e printimit, çfarë mund të bëjë dhe si ta thërrasim saktë pa kllapa.
2. Mësoi se si të deklarohen variablat, si të llogariten shprehjet (edhe pse jo pak), si mund të jenë emrat e variablave.
3. Mësuam për zero, u përshkuam me misterin e tij mistik dhe fituam besimin se në të ardhmen do të shoqërohemi me shumë prej tij.

Për ata që janë kureshtarë dhe që duan të forcojnë njohuritë e tyre, unë ofroj ushtrime të thjeshta, të cilat mund t'i anashkaloni nëse tashmë ndiheni mjaft kompetent:
1. Shkruani një program që luan korin e këngës suaj të preferuar.
2. Provoni të nxirrni vlerat e shprehjeve të mëposhtme. Mundohuni të kuptoni pse disa prej tyre funksionojnë dhe disa jo. Shikoni gabimet që shkaktojnë shprehjet e dështuara.

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
2 + "varg";
6 + "14";
"kuti" - "vox";
1 * "11b"
"148" * "1e6";


3. Shkruani një program që shkëmben dy vlerat e ndryshueshme... Kjo eshte:

200? "200px": "" + (this.scrollHeight + 5) + "px"); ">
a = 6502
b = 8086


Bëjeni a të barabartë me 8086 dhe b të barabartë me 6502. Për ta bërë këtë, krijoni një ndryshore të tretë dhe kryeni disa shkëmbime të thjeshta. Sigurohuni që problemi të jetë zgjidhur saktë duke thirrur print (a, b) përpara shkëmbimit dhe print (a, b) pas.

Artikujt kryesorë të lidhur