【发布时间】:2019-11-01 11:00:32
【问题描述】:
我一直很难阅读与编码相关的官方文档。除非与示例配对,否则我通常无法理解。我正在寻求澄清阅读文档时有哪些约定(如果有的话)。以lua手册中的以下示例为例(https://www.lua.org/manual/5.1/manual.html#2.1) :
stat ::= if exp then block {elseif exp then block} [else block] end
第一个词 Stat 被定义为一个语句,“这个集合包括赋值、控制结构、函数调用和变量声明”。
::= 文档中没有定义,谢天谢地可以google。
Exp 已链接和解释。
块也有一个部分。
然后他们会执行 {} 和 []。他们在上面几行字面上说“方括号用于索引表格”。那个波浪形的括号是用来写表格的。那么我应该从中推断出什么? {} 和 [] 用于表示单独的部分作为标记,以便更容易查看某些组件?或者 {elseif exp then block} 是一个包含这些值的表,而 [else block] 是一个索引表的键值?如果我正在写一个确实如此的文档,我不会这样写吗?
然后我看到了
var ::= prefixexp `[´ exp `]´`
' ' 定义了一个字符串,但我必须假设使用 '[' ']' 来突出一个事实,因为他们在上一节中谈论方括号的作用,所以他们只是突出显示他们的位置,这不应该包含在代码中。我只知道做出这个假设,因为我知道当你把它们放在那里时它不起作用。
但后来我看到了:
chunk ::= {stat [`;´]}
同样,他们在列出代码之前讨论了分号的位置,但整个代码行也被新解释并被讨论。如果它用括号写,我为什么会假设它没有括号写?而且我看到他们再次使用 {} 和 [] ,我不知道他们在引用什么,因为它没有明确说明我们正在谈论一个表格......它只是使用代码本身来解释它是否在谈论是否使用 {} 的表格,但我们有第一组代码,其中使用了 {},它不是在谈论表格。
使用的约定是什么?通过在第一行代码中使用 {} 和 [],他们实际上试图做什么/展示什么?
【问题讨论】: