Lua中如何在表中用nil表示?
- 内容介绍
- 文章标签
- 相关推荐
本文共计429个文字,预计阅读时间需要2分钟。
我们设想创建一个元素列表,包含一些零值。元素的值位置非常重要,我需要在指定位置表表示列中缺少的值。这是一个问题:`a={1, 2, 3, nil, 4}`。对于`k, v`在`a`的迭代中,打印`k, v`。然后打印`a[4]`和`a[5]`。使用循环。
我们假设我想存储一个元素列表.包括一些零值.值的位置很重要,我需要在给定位置表示列表中缺少值.这是一个问题:
a = {1,2,3,nil,4} for k,v in ipairs(a) do print(k,v) end print(a[4]) print(a[5])
for循环只会打印元素1,2和3.它会停止为零.第一个print语句打印nil,但我不确定它是否实际存储在表中. (谁知道?)第二个打印语句打印4 – 正如预期的那样.
所以这里有一个问题:如何表示表中的元素列表,并有效地迭代它们?鉴于上述条件,例如这个职位很重要,而且有些职位“空洞”.换句话说:没有价值,但在那个位置缺乏价值具有意义.
这是模块“null.lua”local function null(...) local t, n = {...}, select('#', ...) for k = 1, n do local v = t[k] if v == null then t[k] = nil elseif v == nil then t[k] = null end end return (table.unpack or unpack)(t, 1, n) end _G.null = null
使用null()作为编码器和解码器
require("null") a = {null(1,2,3,nil,4)} -- the same could be done element-by-element -- a = {null(1),null(2),null(3),null(nil),null(4)} for k,v in ipairs(a) do v = null(v) print(k,v) end print(null(a[4])) print(null(a[5]))
本文共计429个文字,预计阅读时间需要2分钟。
我们设想创建一个元素列表,包含一些零值。元素的值位置非常重要,我需要在指定位置表表示列中缺少的值。这是一个问题:`a={1, 2, 3, nil, 4}`。对于`k, v`在`a`的迭代中,打印`k, v`。然后打印`a[4]`和`a[5]`。使用循环。
我们假设我想存储一个元素列表.包括一些零值.值的位置很重要,我需要在给定位置表示列表中缺少值.这是一个问题:
a = {1,2,3,nil,4} for k,v in ipairs(a) do print(k,v) end print(a[4]) print(a[5])
for循环只会打印元素1,2和3.它会停止为零.第一个print语句打印nil,但我不确定它是否实际存储在表中. (谁知道?)第二个打印语句打印4 – 正如预期的那样.
所以这里有一个问题:如何表示表中的元素列表,并有效地迭代它们?鉴于上述条件,例如这个职位很重要,而且有些职位“空洞”.换句话说:没有价值,但在那个位置缺乏价值具有意义.
这是模块“null.lua”local function null(...) local t, n = {...}, select('#', ...) for k = 1, n do local v = t[k] if v == null then t[k] = nil elseif v == nil then t[k] = null end end return (table.unpack or unpack)(t, 1, n) end _G.null = null
使用null()作为编码器和解码器
require("null") a = {null(1,2,3,nil,4)} -- the same could be done element-by-element -- a = {null(1),null(2),null(3),null(nil),null(4)} for k,v in ipairs(a) do v = null(v) print(k,v) end print(null(a[4])) print(null(a[5]))

