lua官方文档中使用的标记有指导/约定吗?
我阅读与编程有关的官方文档时总是有很大的困难。除非有示例,否则我通常无法理解它。我想了解在阅读文档时是否有任何约定。以来自lua手册的以下示例为例(https://www.lua.org/manual/5.1/manual.html#2.1): :
stat:: =如果exp然后块{elseif exp then block}[else block] end
第一个单词Stat定义为一个声明,"此集合包括赋值、控制结构、函数调用和变量声明"。
::=在文档中未定义,但可以通过谷歌搜索找到。
Exp已连接并解释。
块也有一个部分。
但是它们做{}和[]。他们字面上说"方括号用于索引表"就在几行前。而且它们用起波状括号来编写表。那么我应该从中推断出什么呢?{}和[]用作标记来简化查看某些组件的分隔符?还是{elseif exp then block}是一个包含这些值的表,[else block]是对表进行键值索引?如果我要编写一个确实是这样的文档,我会这样写吗?
然后我看到
var ::= prefixexp`[´exp`]´`
' '定义一个字符串,但我必须假设'[]'被用作突出显示的方式,因为在前面的部分谈论方括号时,我知道将它们放在那里是不起作用的。
但是我又看到了这个:
chunk:: = {stat [`;´]}
同样,他们在列出代码之前谈论了分号的放置,但是整个代码行也是新解释和谈论的对象。如果是用括号编写的,为什么我要假定它没有括号?而我看到他们再次使用{}和[],但我不知道它们在引用什么,因为没有明确说明我们是否在谈论表格...它只是使用代码本身来解释是否在使用{}来谈论表格,但我们有第一组代码使用{}而不谈论表格。
使用的约定是什么?他们实际上想要做/显示什么,通过在第一行代码中使用{}和[]?
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

正如在Lua文档开头和关于Lua语法的章节中所述,Lua以扩展BNF格式呈现其语法。
EBNF具有其自己的标点符号及其含义,例如您发现的
::=。但作为语法,需要区分EBNF标点符号的含义和“该标点符号出现在由语法定义的语言中”的含义。因此,前者的含义总是被假定;而后者的含义只能通过对该标点符号进行_引用_来实现。所以这个:
var ::= prefixexp `[´ exp `]´`意味着一个
prefixexp后跟一个开放方括号,然后是exp,最后是一个闭合方括号。相比之下,这个:
意味着
Name后面跟着零个或多个由.跟随的Name子序列,然后是一个可选的由:跟随的Name子序列。因为那些是{}和[]在EBNF中的含义。