mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-08-16 03:34:53 +02:00
Update
This commit is contained in:
@@ -45,7 +45,7 @@ end
|
|||||||
if num > 40 then
|
if num > 40 then
|
||||||
print('больше 40')
|
print('больше 40')
|
||||||
elseif s ~= 'walternate' then -- ~= обозначает "не равно".
|
elseif s ~= 'walternate' then -- ~= обозначает "не равно".
|
||||||
-- Проверка равенства это == как в Python; ok для строк.
|
-- Проверка равенства это == как в Python; работает для строк.
|
||||||
io.write('не больше 40\n') -- По умолчанию стандартный вывод.
|
io.write('не больше 40\n') -- По умолчанию стандартный вывод.
|
||||||
else
|
else
|
||||||
-- По умолчанию переменные являются глобальными.
|
-- По умолчанию переменные являются глобальными.
|
||||||
@@ -54,7 +54,7 @@ else
|
|||||||
-- Как сделать локальную переменную:
|
-- Как сделать локальную переменную:
|
||||||
local line = io.read() -- Считывает введённую строку.
|
local line = io.read() -- Считывает введённую строку.
|
||||||
|
|
||||||
-- Конкатенация строк использует .. оператор:
|
-- Для конкатенации строк используется оператор .. :
|
||||||
print('Зима пришла, ' .. line)
|
print('Зима пришла, ' .. line)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -133,10 +133,10 @@ f = function (x) return x * x end
|
|||||||
-- Эти тоже:
|
-- Эти тоже:
|
||||||
local function g(x) return math.sin(x) end
|
local function g(x) return math.sin(x) end
|
||||||
local g = function(x) return math.sin(x) end
|
local g = function(x) return math.sin(x) end
|
||||||
-- Equivalent to local function g(x)..., except referring to g in the function
|
-- Эквивалентно для local function g(x)..., кроме ссылки на g в теле функции
|
||||||
-- body won't work as expected.
|
-- не будет работать как ожидалось.
|
||||||
local g; g = function (x) return math.sin(x) end
|
local g; g = function (x) return math.sin(x) end
|
||||||
-- the 'local g' decl makes g-self-references ok.
|
-- 'local g' будет прототипом функции.
|
||||||
|
|
||||||
-- Trig funcs work in radians, by the way.
|
-- Trig funcs work in radians, by the way.
|
||||||
|
|
||||||
@@ -151,32 +151,34 @@ print {} -- Тоже сработает.
|
|||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- Таблицы = структура данных, свойственная только для Lua; это ассоциативные массивы.
|
-- Таблицы = структура данных, свойственная только для Lua; это ассоциативные массивы.
|
||||||
-- Similar to php arrays or js objects, they are hash-lookup dicts that can
|
-- Похоже на массивы в PHP или объекты в JS
|
||||||
-- also be used as lists.
|
-- Так же может использоваться как список.
|
||||||
|
|
||||||
-- Using tables as dictionaries / maps:
|
|
||||||
|
|
||||||
-- Dict literals have string keys by default:
|
-- Использование словарей:
|
||||||
|
|
||||||
|
-- Литералы имеют ключ по умолчанию:
|
||||||
t = {key1 = 'value1', key2 = false}
|
t = {key1 = 'value1', key2 = false}
|
||||||
|
|
||||||
-- String keys can use js-like dot notation:
|
-- Строковые ключи выглядят как точечная нотация в JS:
|
||||||
print(t.key1) -- Печатает 'value1'.
|
print(t.key1) -- Печатает 'value1'.
|
||||||
t.newKey = {} -- Добавляет новую пару ключ-значение.
|
t.newKey = {} -- Добавляет новую пару ключ-значение.
|
||||||
t.key2 = nil -- Удаляет key2 из таблицы.
|
t.key2 = nil -- Удаляет key2 из таблицы.
|
||||||
|
|
||||||
-- Literal notation for any (non-nil) value as key:
|
-- Литеральная нотация для любого (не пустой) значения ключа:
|
||||||
u = {['@!#'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}
|
u = {['@!#'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}
|
||||||
print(u[6.28]) -- пишет "tau"
|
print(u[6.28]) -- пишет "tau"
|
||||||
|
|
||||||
-- Key matching is basically by value for numbers and strings, but by identity
|
-- Ключ соответствует нужен не только для значения чисел и строк, но и для
|
||||||
-- for tables.
|
-- идентификации таблиц.
|
||||||
a = u['@!#'] -- Теперь a = 'qbert'.
|
a = u['@!#'] -- Теперь a = 'qbert'.
|
||||||
b = u[{}] -- We might expect 1729, but it's nil:
|
b = u[{}] -- Мы ожидали 1729, но получили nil:
|
||||||
-- b = nil since the lookup fails. It fails because the key we used is not the
|
-- b = nil вышла неудача. Потому что за ключ мы использовали
|
||||||
-- same object as the one used to store the original value. So strings &
|
-- не тот же объект, который использовали в оригинальном значении.
|
||||||
-- numbers are more portable keys.
|
-- Поэтому строки и числа больше подходят под ключ.
|
||||||
|
|
||||||
-- A one-table-param function call needs no parens:
|
-- Вызов фукцнии с одной таблицей в качестве аргумента
|
||||||
|
-- не нуждается в кавычках:
|
||||||
function h(x) print(x.key1) end
|
function h(x) print(x.key1) end
|
||||||
h{key1 = 'Sonmi~451'} -- Печатает 'Sonmi~451'.
|
h{key1 = 'Sonmi~451'} -- Печатает 'Sonmi~451'.
|
||||||
|
|
||||||
@@ -187,15 +189,16 @@ end
|
|||||||
-- _G - это таблица со всеми глобалями.
|
-- _G - это таблица со всеми глобалями.
|
||||||
print(_G['_G'] == _G) -- Печатает 'true'.
|
print(_G['_G'] == _G) -- Печатает 'true'.
|
||||||
|
|
||||||
-- Using tables as lists / arrays:
|
-- Использование таблиц как списков / массивов:
|
||||||
|
|
||||||
-- List literals implicitly set up int keys:
|
-- Список значений с неявно заданными целочисленными ключами:
|
||||||
v = {'value1', 'value2', 1.21, 'gigawatts'}
|
v = {'value1', 'value2', 1.21, 'gigawatts'}
|
||||||
for i = 1, #v do -- #v is the size of v for lists.
|
for i = 1, #v do -- #v это размер списка v.
|
||||||
print(v[i]) -- Indices start at 1 !! SO CRAZY!
|
print(v[i]) -- Начинается с ОДНОГО!
|
||||||
end
|
end
|
||||||
-- A 'list' is not a real type. v is just a table with consecutive integer
|
|
||||||
-- keys, treated as a list.
|
-- Список это таблица. v Это таблица с последовательными целочисленными
|
||||||
|
-- ключами, созданными в списке.
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- 3.1 Мета-таблицы и мета-методы.
|
-- 3.1 Мета-таблицы и мета-методы.
|
||||||
|
Reference in New Issue
Block a user