Lua中使用“#”运算符计算表的长度? [复制]

2023-12-05

我使用时有一个问题#计算表的长度。例如:

local t = {"a", "b"}
local t1 = {"a", nil}
print(#t)       -- 2
print(#t1)      -- 1

local t = {"a", "b"}
local t1 = {nil, "a"}
print(#t)       -- 2
print(#t1)      -- 2

有人能告诉我为什么吗?


Unless __len定义了元方法,#运算符只能对作为序列的表进行操作。

序列是一个表,其正数字键的集合等于{1..n}对于一些非负整数n.

在你的例子中:


local t = {"a", "b"}

t是一个长度为2.


local t1 = {"a", nil}

相当于local t1 = {"a"}, so t1是一个长度为1.


local t1 = {nil, "a"}

t1不是一个序列,所以#t1没有定义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lua中使用“#”运算符计算表的长度? [复制] 的相关文章

  • 什么更快?循环或多个 if 条件

    我想知道什么更快 是只用一条指令 即 1 1 执行 9 次 for 循环还是执行 9 个 if 条件时 我认为 if 更快 因为您不需要检查循环中的指令 它应该几乎相同 因为for循环本质上是检查if条件为真并运行一段代码 非常类似于if声
  • 使用 corona sdk 验证电子邮件地址

    在我的项目中 有一个供用户填写详细信息的表单 其中有一个文本字段用于输入用户的电子邮件 ID 所以我需要在 corona 项目中验证该文本字段中的电子邮件 试试这个正则表达式 local email email protected cdn
  • C 的哪些部分最可移植?

    我最近读到了 Lua 联合创始人 Luiz H de Figueredo 和 Roberto Ierusalimschy 的采访 他们讨论了 Lua 的设计和实现 至少可以说这是非常有趣的 然而 讨论的一部分让我想起了一些事情 Robert
  • corona sdk中拖动物理对象

    我尝试在场景中拖动重力 0 0 的动态主体 我有一个主体类型为动态的正方形 以及一个主体类型为静态的图像 但是当将方形拖动到图像上时 它会产生一点力 但是可以超出图像并传递到另一边 如图所示 这是我拖动正方形的代码 local functi
  • lua http套接字超时

    LuaSocket HTTP 模块文档说可以在 HTTP 连接上设置超时 可以设置以下常量来控制 HTTP 模块的默认行为 PORT 用于连接的默认端口 PROXY 用于连接的默认代理 TIMEOUT 设置所有I O操作的超时时间 USER
  • 如何在aerospike中获取ttl为-1的记录集?

    我在aerospike中有很多记录 我想获取ttl为 1的记录 请提供解决方案 只是为了澄清 设置TTL 为 1 https github com aerospike aerospike client go blob master docs
  • Kong - 验证上游 ssl(ssl_proxy 打开)

    我已经成功为 API 安装了 kong 网关 该 API 通过上游负载平衡到多个目标 应用程序服务器 现在 我有一个我的应用程序服务器的自签名证书 kong 和目标之间的 ssl 握手应该失败 我推断 kong 不验证上游证书 经过一些研究
  • 如何在 Lua 中实现 OO?

    Lua 没有内置对 OO 的支持 但它允许您自己构建它 您能否分享一些实现面向对象的方法 请为每个答案写一个例子 如果您有更多示例 请发布另一个答案 我喜欢将 OOP 视为容器 对象 内的数据封装以及可以使用该数据完成的操作子集 还有很多内
  • Lua 从 5.1 更新 - LUA_GLOBALSINDEX 问题

    我最近将旧的 Lua 5 1 项目更新到了该库的最新版本 但遇到了问题LUA GLOBALSINDEX 它变得不确定 我只用过它lua getfield函数 像这样 void luastartgame void if startgamefu
  • Lua中按字符分割字符串

    我有像这样的字符串 ABC DEF 我需要将它们分开 字符并将两个部分分别分配给一个变量 在 Ruby 中 我会这样做 a b ABC DEF split 显然Lua没有这么简单的方法 经过一番挖掘后 我找不到一种简短的方法来实现我所追求的
  • 如何让我的 add 命令找到第一个变量和第二个变量的值,然后将它们加在一起?

    vars values function open file lex file end function lex file local data io open file r for char in data lines do Print
  • Lua中有状态迭代器和无状态迭代器的区别

    Lua中无状态和有状态迭代器有什么区别 请详细解释一下 什么时候需要使用无状态 什么时候需要使用另一种 我需要例子来理解这个概念 首先让我们就一个定义达成一致 在 Lua 中 迭代器是function 类似对象 每次调用时都会返回序列中的下
  • 如何使用 Lua 运行可执行文件?

    我有一个可执行文件想要使用 Lua 运行 我该怎么做 似乎无法在任何地方找到有关此的任何文档 您可以使用 Lua 原生的 执行 命令 Example os execute c temp program exe 资料来源 Lua 指南 os
  • lua 和 walk_block 中的 pandoc 过滤器

    我正在尝试应用一个 LUA 过滤器 该过滤器只会更改文档的正文 而不影响元数据 而且比我想象的要难 过滤器应将文本添加到内联元素和块元素的前面和后面 如果它适用于内联元素 这里Code 对于块元素失败CodeBlock function P
  • 如何从 Lua 内部运行另一个脚本?

    我需要从另一个 Lua 脚本中执行一个 Lua 脚本 有多少种方法 我该如何使用它们 通常您会使用以下内容 dofile filename lua 但你可以通过以下方式做到这一点require 很好 例子 foo lua io write
  • 在Windows上使用gcc 5.3.0编译Lua 5.2.4模块

    我需要用 gcc 5 3 0 编译 Lua 5 2 4 模块 在 Windows 上 在此之前 我按照以下步骤构建 Lua 5 2 4 gcc c DLUA BUILD AS DLL c ren lua o lua obj ren luac
  • Lua 中的贪婪/非贪婪模式匹配和可选后缀

    在 Lua 中 我正在尝试模式匹配和捕获 384 Critical Strike Reforged from Parry Chance as 384 Critical Strike 后缀在哪里 Reforged from s 是可选的 长版
  • 将值存储在 lua 的 userdata 对象中

    我想做的是这样的 object foo bar print object foo 其中 对象 是用户数据 我已经用谷歌搜索了一段时间 使用关键字 newindex 和 lua rawset 但我找不到任何可以实现我想要的功能的示例 我想用
  • Linq 是如何工作的(在幕后)?

    我正在考虑为 Lua 制作类似 Linq 的东西 并且我大致了解 Linq 的工作原理 但想知道是否有一篇好文章 或者是否有人可以解释 C 如何使 Linq 成为可能 注意 我的意思是在幕后 比如它如何生成代码绑定等等 而不是最终用户语法
  • luajit2.0.0 -- 分段错误:11

    我使用一个简单的例子http lua users org wiki SimpleLuaApiExample http lua users org wiki SimpleLuaApiExample进行测试 该示例可以成功静态链接libluaj

随机推荐

  • Java 到 Jackson JSON 序列化:货币字段

    目前 我正在使用 Jackson 从基于 Spring 的 Web 应用程序发送 JSON 结果 我遇到的问题是尝试让所有货币字段输出两位小数 我无法使用解决这个问题setScale 2 因为像 25 50 这样的数字被截断为 25 5 等
  • jquery 验证和 ajax.beginform

    使用 JQuery Validate 插件时提交 Ajax Beginform 不会停止提交 有没有好的方法来确保 Ajax Beginform 不被提交 我还尝试使用 JQuery Forms 插件来 ajaxify 我的表单 这真是一种
  • 如何更改flutter中的日期和时间格式?

    你好吗 我的后端只接受这种格式的日期和时间 2019 03 24 11 00 00 我在我的应用程序日历小部件中使用来获取日期 并以这种格式打印日期 2019 04 24 12 00 00 000Z 我使用此代码来获取时间 TimeOfDa
  • 如何在 Perl 或批处理中合并两个 Excel (xls) 文件?

    我有两个文件可以说a xls and b xls 第一个包含 2 张 第二个包含 3 张 有人可以告诉我是否可以使用 Perl 或批处理脚本合并它们吗 我想要一份包含 5 张纸的输出XLS file 对于 Perl 解决方案使用电子表格 P
  • CSS:突出显示文本效果

    我试图用一些填充来产生突出显示的文本效果 但填充仅应用于开头和结尾 而不应用于新行 highlight background rgba 255 230 0 0 5 padding 3px 5px margin 3px 5px line he
  • ProGuard 仍然显示完整的活动名称

    我正在使用 Proguard 并在我的应用程序中使用此代码 System out println ACTIVITY NAME IS activity getLocalClassName 它在发布模式下打印出活动名称 我认为它应该混淆所有类名
  • torch.optim 对于多维张量返回“ValueError:无法优化非叶张量”

    我正在尝试优化场景顶点的平移torch optim adam 这是来自redner教程系列 在初始设置下效果很好 它尝试通过将所有顶点移动相同的值来优化场景 称为translation 这是原始代码 vertices for obj in
  • 启用 GtkFileChooserDialog 选择文件或文件夹

    使用 GTK Gtk文件选择对话框 我如何允许用户选择文件或文件夹 两者在这里都有效 这可用的行动是互斥的 不幸的是我认为这是不可能的 我在 Transmission 的 创建 torrent 对话框中尝试了一下 最后使用radibox 启
  • FastAPI 中的依赖注入数据模型

    我对 FastAPI 很陌生 我有一个请求 看起来像这样 router post response model EducationInResp async def create Education account education in
  • 哪个库包含 _is_c_termination_complete

    我在将 C 代码与标准库 C 库链接时收到 LNK2019 错误 我需要知道哪些库包含以下功能 is c termination complete acrt initialize acrt uninitialize acrt uniniti
  • 有效查询包含子字符串的列

    给定一个字符串列 其值类似于 123 12 34 56 5 查询所有的最佳方式是什么包含给定编号的记录 12例如 我脑海中的解决方案是 SELECT id FROM things WHERE things path LIKE 12 但据我所
  • ASP.Net5 Startup.cs ConfigurationBuilder [重复]

    这个问题在这里已经有答案了 使用带有 MVC beta 8 的 VS 2015 我收到以下错误 Severity Code Description Project File Line Error CS1503 Argument 1 cann
  • JavaScript 判断动态命名函数是否存在

    我如何检查是否动态地命名对象或函数存在吗 在示例中 var str test var obj str Page str function Page test if typeof obj str function alert ok else
  • 可以为本机 iOS 应用程序指定的捆绑 ID 数量是否有限制?

    我一直尝试为我的本机 iOS 应用程序添加新的捆绑包 ID 尽管系统说它已保存 但当我 30 分钟后返回时 我添加的 ID 已不存在 目前我的应用程序中有 6 个捆绑包 谢谢各位 None
  • 我的对象的 ArrayList,indexOf 问题

    我对 Java 的 ArrayList 有问题 我创建了一个对象 它包含两个属性 x 和 y 现在我已经在 ArrayList 中加载了一些对象 问题是我不知道如何找到我正在搜索的具有 x 属性的某个对象的索引 有什么办法可以做到这一点吗
  • 优化查询

    我有以下功能 CREATE FUNCTION dbo SuiviRupture CodeArticle NVARCHAR 13 CodeSite NVARCHAR 5 CodeStructure NVARCHAR 13 RETURNS ca
  • 比较模型的同一性,但与变量?用减号构造?

    我的团队正在实施一个变体Ceusters 的参照物追踪 在我们的实现中 实体的原始 URI 可以更改 更改为包含 UUID 的内容 但始终保留原始 URI 的链接 例如 Joey rdf type person New York City
  • 反编译的程序集 - 异常代码

    我使用 ILSpy 反编译了一个程序集 其中一个类特别引起了我的注意 public class CustomTextStream NetworkStream private EventHandler
  • 获取 WinRT 中的当前用户

    我是一名 C 开发人员 我已经习惯了旧的Environment CurrentUser 现在我需要在我的 Windows 8 Metro 应用程序 html 和 js 中精确地做到这一点 那么我怎样才能得到它呢 Windows System
  • Lua中使用“#”运算符计算表的长度? [复制]

    这个问题在这里已经有答案了 我使用时有一个问题 计算表的长度 例如 local t a b local t1 a nil print t 2 print t1 1 local t a b local t1 nil a print t 2 p