跳转至内容

Scribunto:入门/变量

来自维基教科书,自由的教科书

在本章中,我们将学习变量。变量是赋予数据片段的名字,这样我们就可以再次使用这些数据。

基本用法

[编辑 | 编辑源代码]

以下程序给出了一个关于如何使用变量的简单示例。(注意:当你将此程序输入到调试控制台中时,你需要在第一行之后按回车键,而不是 Shift + 回车键。如果你在调试控制台中一次输入多行,你不能使用=字符在行首显示输出。)

代码:

name = "Susan"
= name

输出:

Susan

在程序的第一行,我们创建了一个名为name的变量,并赋予它值 "Susan"。在第二行,我们显示了我们创建的name变量的内容。

你可能已经注意到,在这个程序中,等号=被用于两种不同的目的。这经常让 Lua 初学者感到困惑,所以让我们现在明确它们之间的区别。

  • 在变量名之后,=的意思是 "将右侧的值存储在左侧的变量中"。这个过程称为赋值
  • 在调试控制台中新行开始时,=的意思是 "显示此行语句的结果"。这仅在调试控制台中有效,对于多行语句无效。

另外,请注意,在 Lua 中,单个等号=意味着 "等于"。还有另一个运算符用于表示 "等于",我们将在后面学习。

变量名

[编辑 | 编辑源代码]

在前面的示例中,我们使用 "name" 作为变量名,没有给出任何进一步的解释。但是,在你开始创建自己的变量之前,你应该知道,对你可以使用的名称有一些限制。这些限制如下:

  • 变量名只能使用小写字母 a 到 z,大写字母 A 到 Z,数字 0 到 9,以及下划线字符_
  • 它们不能以数字开头。
  • 它们不能是为核心 Lua 函数保留的词。

这里,"保留字" 是指语言本身用于各种不同编程任务的词。它们如下:

  • and
  • break
  • do
  • else
  • elseif
  • end
  • false
  • for
  • function
  • if
  • in
  • local
  • nil
  • not
  • or
  • repeat
  • return
  • then
  • true
  • until
  • while

只要你遵守上述规则,你就可以使用任何东西作为名称。但是,当你选择变量名时,最好是描述性的。描述性的名称更容易让查看你程序的人理解(也更容易让你在编写完程序六个月后查看自己的程序)。例如,如果你要创建一个变量来存储一个维基链接,名称 wikilinklinkwll 更容易理解。

另一个需要注意的重要事项是变量区分大小写。就 Lua 而言,nameNameNAME 是完全不同的变量。

重复使用变量

[编辑 | 编辑源代码]

一旦你将一个值赋予一个变量,你就可以像你想要的那样多次使用它。

代码:

name = "Susan"
= name
= name
= name

输出:

Susan
Susan
Susan

你也可以在计算和其他类型的 Lua 表达式中使用变量。你只需要输入变量名,它将被视为它的值。

代码:

num = 3
= num * num

输出:

9

如果你处理的是长数字或字符串,这可以为你节省一些按键操作。

代码:

num = 4710462919837471
= num * num

输出:

2.2188460919164e+31

这也是使你的代码可重用的关键。在我们开始编写完整的 Lua 模块后,我们将了解更多关于这一点。

你也可以像你想要的那样多次为变量分配新的值。这也被称为重新赋值

代码:

name = "Susan"
= name
name = "Tim"
= name
name = "Jennie"
= name

输出:

Susan
Tim
Jennie
华夏公益教科书