mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2026-01-06 11:12:40 +01:00
Подробности документации advancedLua
This commit is contained in:
parent
006bed7825
commit
f6627c5499
@ -27,18 +27,18 @@ AdvancedLua - библиотека, дополняющая стандартны
|
||||
**getCurrentScript**( ): *string* path
|
||||
-----------------------------------------------------------
|
||||
|
||||
Функция возвращает путь к текущему исполняемому скрипту. К примеру, если запустить файл /Test/Main.lua с содержимым
|
||||
Функция возвращает путь к текущему исполняемому скрипту. Для примера запустим файл **/Test/Main.lua** со следующим содержимым:
|
||||
|
||||
```lua
|
||||
print("Путь к текущему скрипту: " .. getCurrentScript())
|
||||
```
|
||||
То в результате на экране будет отображена следующая строка:
|
||||
В результате на экране будет отображен тот самый путь:
|
||||
|
||||
```lua
|
||||
Путь к текущему скрипту: /Test/Main.lua
|
||||
```
|
||||
|
||||
**enum**( ... ): *table* associativeResult
|
||||
**enum**( ... ): *table* result
|
||||
-----------------------------------------------------------
|
||||
|
||||
Функция принимает строковые аргументы и возвращает таблицу с этими аргументами в виде ключей, а также с их порядковым номером в виде значений. Данная функция создана для удобства, когда нет желания вручную изменять значения полей на нужные:
|
||||
@ -64,17 +64,17 @@ local alignment = enum(
|
||||
Дополнения библиотеки table
|
||||
======
|
||||
|
||||
table.**serialize**( tableToSerialize, [ pretty, indentationWidth, indentUsingTabs, recursionStackLimit ] ): *string* result
|
||||
table.**serialize**( t, [ pretty, indentationWidth, indentUsingTabs, recursionStackLimit ] ): *string* result
|
||||
-----------------------------------------------------------
|
||||
| Тип | Аргумент | Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | tableToSerialize | Таблица, которую необходимо сериализовать |
|
||||
| *table* | t | Таблица, которую необходимо сериализовать |
|
||||
| *boolean* | pretty | Опциональный аргумент, сериализующий таблицу для наилучшего визуального восприятия человеком. По умолчанию имеет значение false |
|
||||
| *int* | indentationWidth | Опциональный аргумент, отвечающий за ширину отступа в символах при сериализации в режиме **pretty** |
|
||||
| *boolean* | indentUsingTabs | Опциональный аргумент, отвечающий за выбор символа отступа при сериализации в режиме **pretty**. По умолчанию имеет значение false |
|
||||
| *int* | recursionStackLimit | Опциональный аргумент, отвечающий за ограничение стека рекурсии при сериализации таблиц большого размера |
|
||||
|
||||
Метод изначально создан в качестве быстрой альтернативы /lib/serialization.lua, поставляемой OpenOS. Он преобразует содержимое таблицы в строку и крайне удобен для сохранения конфигов различного ПО в понятном для человека виде с сохранением исходной структуры таблицы. Для примера рассмотрим следующий код:
|
||||
Метод изначально создавался в качестве быстрой альтернативы **/lib/serialization.lua**, поставляемой OpenOS. Он преобразует содержимое таблицы в строку и крайне удобен для сохранения конфигов различного ПО в понятном для человека виде с сохранением исходной структуры таблицы. Для примера рассмотрим следующий код:
|
||||
|
||||
```lua
|
||||
local myTable = {
|
||||
@ -92,7 +92,7 @@ print(" ")
|
||||
print("Красивая сериализация: " .. table.serialize(myTable, true))
|
||||
```
|
||||
|
||||
В результате выполнения скрипта на экране отобразится следующее:
|
||||
В результате выполнения скрипта на экране будет отображена сериализованная структура таблицы :
|
||||
|
||||
```lua
|
||||
Обычная сериализация: {[1]="Hello",[2]="world",["abc"]=123,["def"]="456",["ghi"]={["jkl"]=true}}
|
||||
@ -116,13 +116,13 @@ table.**unserialize**( text ): *table or nil* result, *string* reason
|
||||
| ------ | ------ | ------ |
|
||||
| *string* | text | Строка, созданная методом table.**serialize**() |
|
||||
|
||||
Метод пытается десериализовать строковое представление lua-таблицы и вернуть результат. Если это невозможно, то возвращается nil и строка с причиной синтаксической ошибки. Для примера выполним следующий код:
|
||||
Метод пытается десериализовать строковое представление lua-таблицы и вернуть результат. Если это невозможно, то возвращается nil и строка с причиной синтаксической ошибки. Для примера выполним простейшую десериализацию:
|
||||
|
||||
```lua
|
||||
local result = table.unserialize("{ abc = 123 }")
|
||||
```
|
||||
|
||||
В результате таблица result будет иметь следующее содержимое:
|
||||
В результате таблица result будет иметь следующий вид:
|
||||
|
||||
```lua
|
||||
{
|
||||
@ -145,7 +145,7 @@ table.**fromFile**( path ): *string* result
|
||||
| ------ | ------ | ------ |
|
||||
| *string* | path | Путь к файлу, содержимое которого необходимо десериализовать |
|
||||
|
||||
Метод аналогичен table.**unserialize**(...), однако строковое содержимое он читает напрямую из существующего файла, возвращая десериализованный результат. Опять же, по большей части он применяется для удобного сохранения конфигов ПО.
|
||||
Метод аналогичен table.**unserialize**(...), однако строковое содержимое он читает напрямую из существующего файла, возвращая десериализованный результат. Опять же, по большей части он применяется для удобной загрузки конфигов ПО.
|
||||
|
||||
table.**size**( t ): *int* result
|
||||
-----------------------------------------------------------
|
||||
@ -153,7 +153,7 @@ table.**size**( t ): *int* result
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | t | Таблица, число ключей которой необходимо вычислить |
|
||||
|
||||
Метод возвращает число ключей переданной таблицы. Отличается от варианта #t тем, что подсчитывает также ненумерические индексы
|
||||
Метод возвращает число ключей переданной таблицы. Отличается от варианта **#t** тем, что подсчитывает также ненумерические индексы
|
||||
|
||||
table.**contains**( t, object ): *boolean* result
|
||||
-----------------------------------------------------------
|
||||
@ -179,7 +179,7 @@ table.**copy**( t ): *table* result
|
||||
| ------ | ------ | ------ |
|
||||
| *table* | t | Таблица, которую необходимо сдублирвать |
|
||||
|
||||
Метод рекурсивно копирует содержимое таблицы t в новую и возвращает результат. Обращаю внимание на то, что таблицы, ссылающиеся сами на себя, не поддерживаются (ограничение рекурсии по аналогии с table.**serialize**() пилить было оч оч лень, прости <3)
|
||||
Метод рекурсивно копирует содержимое таблицы t в новую и возвращает результат. Обращаю внимание на то, что таблицы, ссылающиеся сами на себя, не поддерживаются (ограничение стека рекурсии по аналогии с table.**serialize**() пилить было оч оч лень, прости <3)
|
||||
|
||||
Дополнения библиотеки string
|
||||
======
|
||||
@ -213,10 +213,40 @@ string.**wrap**( s, wrapWidth ): *table* result
|
||||
-----------------------------------------------------------
|
||||
| Тип | Аргумент | Описание |
|
||||
| ------ | ------ | ------ |
|
||||
| *string/string[]* | s | Строка либо массив строк, которые необходимо перенести по указанной ширине |
|
||||
| *int* | wrapWidth | Максимальная ширина строки, на которую следует ориентироваться при переносе |
|
||||
| *string/string[]* | s | Строка либо массив строк, которые необходимо перенести по указанной длине |
|
||||
| *int* | wrapWidth | Максимальная длина строки, на которую следует ориентироваться при переносе |
|
||||
|
||||
Метод осуществляет перенос строки с указанным ограничением по длине и возвращает результат в виде таблицы. Если размер отдельно взятого слова превышает указанную длину, то слово будет "разрезано" на составляющие части.
|
||||
|
||||
Также поддерживаются символы **\n** для автоматического переноса каретки на новую строку. Для примера рассмотрим код:
|
||||
|
||||
```lua
|
||||
local limit = 20
|
||||
local text = "Привет, как дела? Сегодня отличный денек для выгула твоей вонючей псины, не так ли, Сэм?\n\nАх, ты уже не тот Сэм, с которым Фродо расплавил кольцо Саурона в самом сердце Роковой Горы"
|
||||
local lines = string.wrap(text, limit)
|
||||
|
||||
print(string.rep("-", limit))
|
||||
for i = 1, #lines do
|
||||
print(lines[i])
|
||||
end
|
||||
```
|
||||
В результате на экране будет отображен текст:
|
||||
|
||||
```lua
|
||||
--------------------
|
||||
Привет, как дела?
|
||||
Сегодня отличный
|
||||
денек для выгула
|
||||
твоей вонючей псины,
|
||||
не так ли, Сэм?
|
||||
|
||||
Ах, ты уже не тот
|
||||
Сэм, с которым Фродо
|
||||
расплавил кольцо
|
||||
Саурона в самом
|
||||
сердце Роковой Горы
|
||||
```
|
||||
|
||||
Метод осуществляет перенос строк по указанной ширине, возвращая таблицу с результатом. Если размер отдельно взятого слова превышает указанную ширину, то слово будет "разрезано" на составляющие части
|
||||
|
||||
string.**unicodeFind**( ... ): ...
|
||||
-----------------------------------------------------------
|
||||
@ -224,7 +254,7 @@ string.**unicodeFind**( ... ): ...
|
||||
| ------ | ------ | ------ |
|
||||
| - | ... | Множество аргументов, аналогичных таковым для функции string.**find**(...) |
|
||||
|
||||
Метод аналогичен string.**find*(...), однако позволяет работать с юникодом. Незаменимая штука для русскоговорящей аудитории!
|
||||
Метод аналогичен string.**find**(...), однако позволяет работать с юникодом. Незаменимая штука для русскоговорящей аудитории!
|
||||
|
||||
Дополнения библиотеки math
|
||||
======
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user