mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 09:41:36 +00:00
And the last(?) one
This commit is contained in:
parent
41633c28aa
commit
acaefff543
@ -35,7 +35,7 @@ u = [[ Двойные квадратные скобки
|
||||
многострочные значения.]]
|
||||
t = nil -- Удаляет определение переменной t; в Lua есть сборка мусора.
|
||||
|
||||
-- Блоки обозначаются ключевыми слоавми, такими как do/end:
|
||||
-- Блоки обозначаются ключевыми словами, такими как do/end:
|
||||
while num < 50 do
|
||||
num = num + 1 -- Операторов ++ и += нет.
|
||||
end
|
||||
@ -139,8 +139,8 @@ local g; g = function (x) return math.sin(x) end
|
||||
-- Вызов функции с одним строковым параметром не требует круглых скобок:
|
||||
print 'hello' -- Работает без ошибок.
|
||||
|
||||
-- Вызов функции с одним табличным параметром так же
|
||||
-- не требует круглых скобок (про таблицы в след.части):
|
||||
-- Вызов функции с одним табличным параметром также
|
||||
-- не требует круглых скобок (про таблицы в след. части):
|
||||
print {} -- Тоже сработает.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
@ -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!
|
||||
|
Loading…
Reference in New Issue
Block a user