Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Язык Lua - как сравнить содержимое двух таблиц в L, Язык Lua - как сравнить таблицы? 
:(
    Опции темы
nvrrus
Дата 29.1.2013, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.2.2011

Репутация: нет
Всего: нет



Здравствуйте, уважаемые форумчане!

Подскажите, пожалуйста, как сравнить содержимое двух таблиц в Lua?

Например, есть строка ввода в SQL, которая в Lua является (по типу) таблицей:

Код

DocumentRecord5 = {'doc5', 'type5', 'DOCsource5$$', 'body5'}


Вводим эту строку в таблицу SQL (DOCUMENTS).
Строка введена верно без ошибок.
Считываем строку и таблицы такой вот Lua -обёрткой 

Код

Select(db, "SELECT * FROM DOCUMENTS WHERE DOC_ID=1;")


где функция Select имеет вид
Код

function Select(db, sql, record)
    for a in db:rows(sql) do return a end
end


функция Select возвращает таблицу.

Полученная таблица и вставленная одинаковые, но как их можно правильно сравнить в Lua?

Был вариант:
Код

-----------------------
-- @return  равны ли два массива по длинне и по значениям.
function is_equal(tbl1, tbl2)

    if #tbl1 ~= #tbl2 then return false end
        
            for i=1,#tbl1 do
                if tbl1[i] ~= tbl2[i] then return false end
            end
    return true;
end
---------------------

Но два массива равны только если они равны по типам (например амссив чисел можно сравнить с массивом чисел.
Иначе всегда фальш, даже в случае если таблицы равны.

Подскажите, кто сталкивался и не сталкивался, свои мысли по решению этого вопроса.
Заранее спасибо!
PM MAIL   Вверх
Lipetsk
Дата 29.1.2013, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в форме ;)
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.1.2009
Где: Липецк

Репутация: 2
Всего: 5



если они разного типа, то что значит "они равны"?

приведите к строке tostring
PM   Вверх
nvrrus
Дата 31.1.2013, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.2.2011

Репутация: нет
Всего: нет



всем спасибо, подсказали вот такое решение
http://snippets.luacode.org/?p=snippets/De...of_Two_Values_3 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.0967 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.