lua – 如何在表中表示nil

lua – 如何在表中表示nil,第1张

概述我们假设我想存储一个元素列表.包括一些零值.值的位置很重要,我需要在给定位置表示列表中缺少值. 这是一个问题: a = {1,2,3,nil,4}for k,v in ipairs(a) do print(k,v)endprint(a[4]) print(a[5]) for循环只会打印元素1,2和3.它会停止为零.第一个print语句打印nil,但我不确定它是否实际存储在表中. ( 我们假设我想存储一个元素列表.包括一些零值.值的位置很重要,我需要在给定位置表示列表中缺少值.

这是一个问题:

a = {1,2,3,nil,4}for k,v in ipairs(a) do  print(k,v)endprint(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,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)endprint(null(a[4]))print(null(a[5]))
总结

以上是内存溢出为你收集整理的lua – 如何在表中表示nil全部内容,希望文章能够帮你解决lua – 如何在表中表示nil所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1231321.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存