lua 中的准引用/引用?

2023-12-24

在 Lisp 中,我可以:

(a b c d e f g)

意思是

look up b, c, d, e, f, g
look up a; apply value of a to above

那么,我还可以:

`(a b c d e f g)

这相当于

 (list 'a 'b 'c 'd 'e 'f 'g)

现在,在 lua 中,我可以:

[snipplet 1]
foo = {
  Foo,
  {Cat, cat},
  {Dog, dog}
};

最终最有可能扩展到: {零,{零,零},{零,零}}

而我真正想要的是这样的:

[snipplet 2]
{ "Foo", {"Cat", "cat"}, {"Dog", "dog"}}

lua中有类似反引号的方法吗?

我发现 [snipplet 1] 比 [snipplet 2] 在视觉上更令人愉悦,但我的意思是片断 2。

Thanks!


没有语法,但您可以尝试这个运行时解决方案:

setmetatable(_G,{__index=function (t,k) return k end})

这使得所有未定义的变量的行为就像它们包含带有名称的字符串一样。

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

lua 中的准引用/引用? 的相关文章

  • 创建独立的 Lua 可执行文件

    有没有一种简单的方法可以从 Lua 脚本创建独立的 exe 文件 基本上这将涉及链接 Lua 解释器和脚本 我相信这是可能的 PLT 方案允许以相同的方式创建独立的可执行文件 但是到底是如何实现的呢 查看srlua http www tec
  • 如何访问废弃的函数参数?

    在 Lua 中 调用带有多余参数的函数将简单地丢弃这些参数 有没有可能与debug库来访问这些被丢弃的参数 我不是在寻找可变参数函数 function test local info debug getinfo 1 u print info
  • Lua中如何对数字表求和?

    Lua有内置的吗sum 功能 我似乎找不到一个 我几乎翻遍了文档中的所有地方 或许table sum 或类似的东西 以遵循当前的约定 但由于我找不到它 我不得不实现它 function sum t local sum 0 for k v i
  • 在 Corona sdk 上保存高分?

    我想保存游戏中创建的高分 并且当玩家点击高分按钮时可以在主菜单中看到 有人可以帮助我吗 您可以使用SQLITE https docs coronalabs com api library sqlite3 index html将高分保存到数据
  • Redis 排序集和解决关系

    我正在使用 Redis 排序集来存储我正在处理的项目的排名 我们没有预料到 我们想要如何处理关系 Redis 按字典顺序对具有相同分数的条目进行排序 但我们想要做的是对具有相同分数的所有条目给予相同的排名 例如在以下情况 redis 127
  • 如何在aerospike中获取ttl为-1的记录集?

    我在aerospike中有很多记录 我想获取ttl为 1的记录 请提供解决方案 只是为了澄清 设置TTL 为 1 https github com aerospike aerospike client go blob master docs
  • lua_resume 的 from 参数的含义

    From Lua 5 2 参考手册 http www lua org manual 5 2 manual html lua resume int lua resume lua State L lua State from int nargs
  • 什么时候适合使用Lua这样的嵌入式脚本语言

    我玩 魔兽世界 大约有两年了 我对用来编写插件的 Lua 很好奇 由于到目前为止我读到的有关 Lua 的内容都是 快 轻 和 这太棒了 所以我想知道如何以及何时使用它 您需要在系统中嵌入像 Lua 这样的脚本语言的典型情况是什么 当您需要最
  • Lua :: 如何编写加载多个CPU的简单程序?

    我还无法用 Lua 编写一个可以加载多个 CPU 的程序 自从Lua通过协程支持这个概念 http www lua org pil 9 4 html 我相信这是可以实现的 我失败的原因可能是以下之一 这在Lua中是不可能的 我写不出来 an
  • 确定已编译Lua的编译器版本

    我有一些已编译的 LuaQ 我需要确定用于编译它的确切版本 有什么可能的方法吗 编译的脚本在文件开头有一个标头 4 bytes signature x1bLua 1 byte version 0x51 1 byte format 1 byt
  • Lua中如何获取表中的最大整数?

    Lua中如何获取表中的最大整数 在Lua 5 1及更早版本中 你可以使用 math max unpack 1 2 3 4 5 这受到Lua堆栈大小的限制 在 PUC Lua 5 1 上 该值的最大值可达 ca 8000 个数字 如果堆栈空闲
  • lua中的权限问题

    是否需要在 corona build settings 中设置一些特定权限才能将高分永久保存在文件中 每次运行代码时都会出现 权限被拒绝 的错误 如何纠正这个错误 这是我尝试过的代码 function read score local f1
  • 如何通过 C API 在自己的环境中执行不受信任的 Lua 文件

    我想通过调用在其自己的环境中执行不受信任的 lua 文件lua setfenv http pgl yoyo org luai i lua setfenv这样它就不会影响我的任何代码 该函数的文档仅解释了如何调用函数 而不解释如何执行文件 目
  • Lua C API:初始化结构体 C 中的变量矩阵

    我正在尝试使用 Lua C API 创建一个用户数据 并在其中关联一个元表 我将在其中收集矩阵 我无法得到的是如何将初始化矩阵的每个分量设置为零 我按照我的描述编译我的 Lua 模块 C 代码here https stackoverflow
  • LuaJ 导入 Lua 方法

    我正在使用 LuaJ 并且我有一个 lua文件充满了一堆函数 如何通过 LuaJ 导入这些函数以在 Java 中使用 一种选择是将文件编译为 Java 代码并导入它 另一种方法是使用可嵌入解释器直接从 Java 代码中调用 Lua 文件 E
  • 推送 Lua 表

    我已经创建了一个Lua表C 但我不知道如何将该表推入堆栈顶部 以便我可以将其传递给 Lua 函数 有谁知道如何做到这一点 这是我当前的代码 lua createtable state libraries size 0 int table i
  • Lua 的标准(或最好支持的)大数(任意精度)库是什么?

    我正在处理大量无法四舍五入的数字 使用 Lua 的标准数学库 似乎没有方便的方法来保持精度超过某些内部限制 我还看到有几个库可以加载以处理大数字 http oss digirati com br luabignum http oss dig
  • 在 lua 中加载 C++ 模块时出现“尝试索引字符串值”错误

    我正在尝试使用 lua 用 C 编写的函数 下面给出的是cpp文件 extern C include lua h include lauxlib h include lualib h static int add 5 lua State L
  • lua 和 walk_block 中的 pandoc 过滤器

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

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

随机推荐

  • @QueryParam 如何将没有值的参数转换为布尔值“false”?

    我想使用像这样的网址http www example com rest foo bar哪里的bar查询参数没有值 它的存在本身就应该表明变量是否是true or false 目前缺失值被假设为 空 并传递给new Boolean 将其视为f
  • XML(带有命名空间)到对象解组

    我从 Web 服务调用得到了以下响应 我尝试使用 JAXB 对其进行解组以将其映射到 java 类 这样做时我遇到了 unmarshal 异常
  • 使用扫描仪时无限循环? [复制]

    这个问题在这里已经有答案了 boolean z false do try a sc nextInt z true catch Exception e while z 尝试这个 如果您第一次尝试使用整数 它会正确执行 但是 如果您输入错误的文
  • Firebase orderByChild 和 equalTo() 查询不起作用

    我正在使用以下 Firebase 数据库表开发 Android 应用程序 posts id 1 author google 111527135678918251124 color 2960686 creationTime 142710414
  • aws cli get 错误“请求中包含的安全令牌无效”

    I did aws configure并测试它之前是否有效 但今天没用 我在尝试获取托管区域时收到错误 aws route53 list hosted zones An error occurred InvalidClientTokenId
  • Hudson 不会从 Git 获取

    我已经打了一天多了 这让我发疯了 我在Win7 PC上安装了Git 并选择 PuttyGen 选项 安装 我已经生成了 ssh 密钥 使用 PuttyGen 我已经添加了ssh 密钥到我的 Git 帐户 并链接 选美比赛中的私钥 我已经设置
  • 为 Bson.M mongodb 创建自定义 mashler/unmashler 时出错

    我收到错误WriteValueBytes can only write while positioned on a Element or Value but is positioned on a TopLevel当尝试为 bson M 创建
  • PyTuple_SetItem 的限制

    我有一个 Python 扩展模块 它创建一个元组作为另一个对象的属性 并在元组中设置项目 每当我在Python中执行这个模块时 我总是收到错误SystemError bad argument to internal function 阅读完
  • 为什么Cppcheck没有发现这个明显的数组越界错误?

    我安装了Cppcheck http cppcheck sourceforge net 我的 C 项目的静态代码分析工具 感觉它的性能很差 例如 谁能告诉我whyCppcheck无法在以下代码中找到数组越界错误 void f int c ch
  • 从 C# 在 PowerShell 6 中运行 PowerShell 脚本

    我有一个与 REST 服务器通信的 PowerShell 脚本 该脚本仅适用于 PowerShell 6 我想从 C 调用它 因为 C 程序需要来自 REST 服务器的信息 并且我不想用 C 重写 REST 代码 基本上 我想从 C 运行
  • 操作系统级别的睡眠是如何实现的?

    我只是感兴趣如何sleep time in ms 是在 C 库中实现的 或者基本上是在操作系统级别实现的 我猜 可能是基于处理器速度 你做了一个 nop 的 while 循环 我不确定睡眠时间是否准确 处理器中的任何特殊寄存器 您在其中写入
  • ASIHTTPRequest 中 POST 中的正文为空

    基本上 我发送一个带有空数据正文的 POST 请求 ASIHTTPRequest request ASIHTTPRequest alloc init request setURL NSURL URLWithString escapedUrl
  • Docker 未知速记标志:-aq 中的“a”)

    我有多个正在运行的 docker 版本 18 09 0 构建 4d60db4 容器 我希望立即停止它们 这篇博文 http blog baudson de blog stop and remove all docker containers
  • 将文件名设置为 Blob 文件

    我想向我的 Blob 文件添加一个文件名 但我真的不知道该怎么做 这是我目前的代码 onClick var myHeader new Headers myHeader append Content Type text plain fetch
  • 如何加密 web.config 中的一项

    ASP NET 4 我用过RSA密钥加密 http msdn microsoft com en us library ff650304 aspx paght000006 webfarmscenarios用于我的网络场的 web config
  • ThreadLocal - 用作带有 spring-boot 的 REST API 的上下文信息

    我有一些spring boot应用程序 它公开了 REST API 提到的 REST API 是由spring security 一切都很好 但是现在我需要设置上下文 用于服务请求 设置上下文是指根据用户上下文选择数据源 关键是Routin
  • Unity Shader - 如何有效地重新着色特定坐标?

    首先 请允许我解释一下我所得到的内容 然后我将讨论接下来我想要弄清楚的内容 我有什么 我有一个带纹理的自定义网格 其一些边缘与 Unity 中的整数世界坐标完全对齐 在网格中 我添加了自己的粗略但有效的自定义表面着色器 如下所示 Shade
  • Swift Closure 中的可选链接,返回类型必须为 Void

    我正在创建一个脚本的双向链接列表 MSScripts 应该有自己的run 实现 然后他们调用下一个脚本 rscript 当他们准备好时 我想创建的脚本之一只是一个延迟 它看起来像这样 class DelayScript MSScript v
  • Django - ManyToManyRelation 中的级联删除

    使用以下相关模型 一篇博客文章可以有多个修订版 class BlogEntryRevision models Model revisionNumber models IntegerField title models CharField m
  • lua 中的准引用/引用?

    在 Lisp 中 我可以 a b c d e f g 意思是 look up b c d e f g look up a apply value of a to above 那么 我还可以 a b c d e f g 这相当于 list a