Перейти к содержимому
  • 0
Bumer_32

почему таблицы с структурой ключ - значение рандомны?

Вопрос

Скрытый текст

local a = {
    a = {
        x = 12,
        y = 56,
    },
    b = {
        x = 562,
        y = 56,
    },
    c = {
        x = 12,
        y = 456,
    },
    d = {
        x = 542,
        y = 546,
    },
    e = {
        x = 1564,
        y = 546,
    }
}

for key, value in pairs(a) do
    print(key)
end

 

к примеру вот такой код

 

по моей логие оно должно вывести: a b c d e, а выводит: 1102125445_.png.f6e978f812c2883253f3968f5df6467f.png

почему это так и как лучше это пофиксить что бы оно всё выводило по очереди как в таблице?

Изменено пользователем Bumer_32

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

42 минуты назад, Bumer_32 сказал:

почему это так

Потому что для быстрогого доступа по ключам Lua использует не сами ключи, а их хеши.

1 час назад, Bumer_32 сказал:

как лучше это пофиксить что бы оно всё выводило по очереди как в таблице?

Для перебора таблицы по ключам в требуемом порядке требуется ещё одна таблица, дающая доступ к ключам по их последовательным целочисленным индексам.

 

Если требуется выводить ключи в алфавитом порядке, такую таблицу можно сформировать автоматически:

> tbl={a=11,b=22,c=33,d=44,e=55,f=66,g=77}

> for k,v in pairs(tbl)do print(k,v)end
ee      55
gg      77
ff      66
aa      11
cc      33
bb      22
dd      44

> key={} for k,v in pairs(tbl)do key[#key+1]=k end
> table.sort(key)

> for i,k in ipairs(key)do print(k,tbl[k]) end
aa      11
bb      22
cc      33
dd      44
ee      55
ff      66
gg      77

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...