Jump to content

Lua (ծրագրավորման լեզու)

Վիքիպեդիայից՝ ազատ հանրագիտարանից
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Lua
Изображение логотипа
Տեսակծրագրավորման լեզու
Կատարման ձևբազմապարադիկմային,պրոցեդուրային, ֆունկիցոնալ, օբյեկտ կողմնորոշված
Առաջացել է1993[1]
ՍտեղծողRoberto Ierusalimschy?[2]
ՆախագծողRoberto Ierusalimschy?
Ընդլայնումներ.lua[3][4], .luna, .lunaire և .anair
ՕՀբազմապլատֆորմ[5]
Համացանցի տվյալների տեսակtext/x-lua
Ներշնչվել էC++, Կլու, Simple Object Language, DEL?, SNOBOL?, Modula?, Modula-2 և Scheme
Ներշնչել էIo, GameMonkey, Squirrel, Falcon, MiniD, Julia
ԱրտոնագիրMIT արտոնագիր[6][7]
Անվանված էԼուսին
Կայքlua.org(անգլ.)(պորտ.)
Ելակոդgithub.com/lua/lua
 Lua (programming language) Վիքիպահեստում

Lua (պորտ.՝ «լուսին»), թեթև ծրագրավորման լեզու է նախագծված, որպես սկրիպտային լեզու ընդլայնելի իմաստաբանությամբ, որպես գլխավոր նպատակ։ Lua-ն քրոսպլատֆորմ է, քանի որ գրված է ANSI C-ով և համեմատաբար պարզ է C, API -ի նկատմամբ։

Հատկանիշներ

Lua-ն հաճախ անվանում են մուլտիպարադիգմային լեզվով։ Այն ապահովում է հիմնական մեխանիզմների մի փոքր շարք։

Կոդի օրինակ

Դասական Hello, World! ծրագիրը կարող է գրել է հետեւյալ կերպ.

print('Hello World!')

նաև

io.write('Hello World!\n')

կամ (the Lua website Արխիվացված 2016-03-04 Wayback Machine)

io.write("Hello world, from ",_VERSION,"!\n")

Մեկնաբանությւնների համար օգտագործում են հետևյալ սինտակսը։

-- Մեկնաբանությունները Lua-ում սկսվում է կրկնակի տողադարձով և շարունակվումմ է մինչև տողի վերջ։

--[[ Մեկից ավելի տողերը և մեկնաբանությունները 
     վերցնում են երկու քառակուսի փակագծեր։ ]]

Ֆակտորիալի ֆունկցիան իրականացվում է այս ֆունկցիայի օրինակով։

function factorial(n)
  local x = 1.
  for i = 2,n do
    x = x * i
  end
  return x
end

Ցիկլեր

Lua-ն ունի ցիկլի չորս տեսակ while ցիկլ,do while ցիկլ, for ցիկլ և ընդհանուր for ցիկլ։

--պայման = true

while պայման do
  --հայտարարություններ
end

repeat
  --հայտարարություններ
until պայման

for i = first,last,delta do --delta-ն կարող է լինել բացասական, for ցիկլը թույլ է տալիս հաշվել կամ հետհաշվարկել։
  --հայտարարություններ
  --օրինակ՝ print(i)
end

Ընդհանուր for ցիկլ։

for key, value in pairs(_G) do
  print(key, value)
end

Ֆունկցիաներ

Ֆունկցիաների հետ աշխատանքը, որպես առաջին կարգի օբյեկտներ ցույց է տրված հետևյալ օրինակում, որտեղ փոփոխվում է print ֆունկցիայի վարաքագիծը.

do
  local oldprint = print
  -- Պահպանում ենք տրված print ֆունկցիան իբրև oldprint
  function print(s)
    --[[ Վերասահմանում ենք print ֆունկցիան.]]
    oldprint(s == "foo" and "bar" or s)
  end
end

Աղյուսակներ

Աղյուսակները տվյալների տեսակների ամենա կարևոր կաույցն են Lua-ում և հիմք են բոլոր օգտագործողների տվյալների տեսակում։ Lua-ում աղյուսակը իրենից ներկայացնում է զույգերի հավաքածու՝ բանալի։ Բանալին կարող է ստանալ ցանկացած արժեք բացի nil(չորոշված)-ից։

Աղյուսակները կառուցվում են հետևյալ {} սինտաքսով։

a_table = {} -- Ստեղծում է նոր, դատարկ աղյուսակ
a_table = {x = 10} -- Ստեղծում է աղյուսակ մեկ մուտքագրումով "x" վերագրելով 10
print(a_table["x"]) -- Տպում է ստեղնի հետ կապված արժեքը, այս դեպքում 10
b_table = a_table
b_table["x"] = 20 -- Այս աղյուսակում նրա արժեքը փոխվեց 20-ի.
print(b_table["x"]) -- Տպում է 20
print(a_table["x"]) -- Նույնպես տպում է 20, որովհոտև a_table և b_table դիմում են նույն աղյուսակին

Որպես գրառում

Աղյուսակները հաճախ օգտագործում են, որպես գրառում՝ օգտագործելով նշանների հաջորդականություն, որպես բանալի։ Օրինակ՝

point = { x = 10, y = 20 } -- Ստեղծում է նոր աղյուսակ
print(point["x"]) -- Տպում է 10
print(point.x) -- Ունի նույն իմաստը, ինչը վերևի տողում է

Որպես անվանատարածք

Օգտագործելով աղյուսակը՝ պահելու առնչվող ֆունկցիաները այն կարող է հանդես գալ, որպես անվանատարածք։

Point = {}

Point.new = function(x, y)
  return {x = x, y = y}  --  վերադարձնում է {["x"] = x, ["y"] = y}
end

Point.set_x = function(point, x)
  point.x = x  --  point["x"] = x;
end

Ծանոթագրություններ

Արտաքին հղումներ

Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Lua (ծրագրավորման լեզու)» հոդվածին։