And the last(?) one

This commit is contained in:
Daniel-Cortez 2014-12-05 17:59:04 +07:00
parent 41633c28aa
commit acaefff543

View File

@ -35,7 +35,7 @@ u = [[ Двойные квадратные скобки
многострочные значения.]]
t = nil -- Удаляет определение переменной t; в Lua есть сборка мусора.
-- Блоки обозначаются ключевыми слоавми, такими как do/end:
-- Блоки обозначаются ключевыми словами, такими как do/end:
while num < 50 do
num = num + 1 -- Операторов ++ и += нет.
end
@ -206,7 +206,7 @@ end
-- Таблицу можно связать с метатаблицей, задав ей поведение, как при
-- перегрузке операторов. Позже мы увидим, что метатаблицы поддерживают
-- поведение, как в js-прототипах.
f1 = {a = 1, b = 2} -- Представляет фракцию a/b.
f1 = {a = 1, b = 2} -- Представляет дробь a/b.
f2 = {a = 2, b = 3}
-- Это не сработает:
@ -233,7 +233,7 @@ s = f1 + f2 -- вызвать __add(f1, f2) на метатаблице от f1
-- t = s + s
-- Похожий на классы подход, приведенный ниже, поможет это исправить.
-- __index перегружет в метатаблице просмотр через точку:
-- __index перегружает в метатаблице просмотр через точку:
defaultFavs = {animal = 'gru', food = 'donuts'}
myFavs = {food = 'pizza'}
setmetatable(myFavs, {__index = defaultFavs})
@ -299,7 +299,7 @@ mrDog:makeSound() -- 'I say woof' -- 8.
-- это можно изменить. newObj получит свои функции, когда мы установим
-- метатаблицу для newObj и __index для self на саму себя.
-- 5. Напоминание: setmetatable возвращает первый аргумент.
-- 6. : работает, как в пункте 2, но в этот раз мы ожидмаем,
-- 6. : работает, как в пункте 2, но в этот раз мы ожидаем,
-- что self будет экземпляром, а не классом.
-- 7. То же самое, что и Dog.new(Dog), поэтому self = Dog в new().
-- 8. То же самое, что mrDog.makeSound(mrDog); self = mrDog.
@ -367,7 +367,7 @@ return M
local mod = require('mod') -- Запустим файл mod.lua.
-- require - стандартный способ подключения модулей.
-- require ведёт себя так: (если не кешировано, см. ниже)
-- require ведёт себя так: (если не кэшировано, см. ниже)
local mod = (function ()
<содержимое mod.lua>
end)()
@ -404,14 +404,14 @@ g() -- Напишет 343.
```
## Примечание (от автора)
Мне было интересно изучить Lua, чтобы делать игры при помощи <a href="http://love2d.org/">Love 2D game engine</a>.
Мне было интересно изучить Lua, чтобы делать игры при помощи <a href="http://love2d.org/">игрового движка LÖVE</a>.
Я начинал с <a href="http://nova-fusion.com/2012/08/27/lua-for-programmers-part-1/">BlackBulletIV's Lua for programmers</a>.
Затем я прочитал официальную <a href="http://www.lua.org/pil/contents.html">Документацию по Lua</a>.
Также может быть полезной <a href="http://lua-users.org/files/wiki_insecure/users/thomasl/luarefv51.pdf">Краткая справка по Lua</a> на lua-users.org.
Основные темы, не охваченные стандартной библиотекой:
Ещё из основных тем не охвачены стандартные библиотеки:
* <a href="http://lua-users.org/wiki/StringLibraryTutorial">библиотека string</a>
* <a href="http://lua-users.org/wiki/TableLibraryTutorial">библиотека table</a>
@ -419,9 +419,7 @@ g() -- Напишет 343.
* <a href="http://lua-users.org/wiki/IoLibraryTutorial">библиотека io</a>
* <a href="http://lua-users.org/wiki/OsLibraryTutorial">библиотека os</a>
Весь файл написан на Lua; сохраните его, как learn.lua, и запустите при помощи "lua learn.lua" !
Это была моя первая статья для tylerneylon.com, которая также доступна как <a href="https://gist.github.com/tylerneylon/5853042">github gist</a>.
Удачи с Lua!
Кстати, весь файл написан на Lua; сохраните его, как learn.lua, и запустите при помощи "lua learn.lua" !
Изначально эта статья была написана для tylerneylon.com.
Также она доступна как <a href="https://gist.github.com/tylerneylon/5853042">github gist</a>. Удачи с Lua!