| 1234567891011121314151617181920212223242526272829303132333435 |
- local function is_sequence(t)
- local prev_k = 0
- for k, _ in pairs(t) do
- if type(k) ~= "number" or k ~= prev_k + 1 then
- return false
- end
- prev_k = prev_k + 1
- end
- return true
- end
- local function table_str(t)
- local str = "{"
- for k, v in pairs(t) do
- if type(k) == "string" then
- k = '"' .. k .. '"'
- end
- str = ("%s [%s] = %s,"):format(str, k, v)
- end
- str = str .. " }"
- return str
- end
- local function test(t)
- print(("%s: %q"):format(table_str(t), is_sequence(t)))
- end
- test({ 1, 2, 3, word = "a word", [10] = 999 })
- test({ 1, 2, 3 })
- test({ [1.0] = 1, [2] = 2 })
- test({ [1.1] = 1, [2] = 2 })
|