love2d-chapter2-variables

love2d-chapter2-variables

九月 26, 2020

第二章-变量

我们可以用编程语言做算术题。
3 + 4等于几?
显然是7!
下面我们用程序来验证一下。我们可以使用print()让数字出现在输出控制台上。

1
2
print(3 + 4)
--output: 7

运行你的代码(按下F6然后关掉出现的窗口来显示输出),然后你的控制台应该输出7。
好极了!那么a + b等于几?
Uhm…
a + b可能等于任何数字,因为它们的值是不确定的。如果我们人为地赋予它们值,我们让:

1
2
a = 5
b = 3

现在a + b等于几?显然是8。我们来验证一下:

1
2
3
4
a = 5
b = 3
print(a + b)
--output: 8

我们把ab叫做变量。你可以这样理解变量:一个变量就是一个小盒子,你可以在盒子里放东西。与3,7这些固定的值不同,变量可以装下任何你想要的东西(你可以为它赋任何你想要的值)。
我们把a = 5这样的语句叫做赋值语句,赋值语句完成对一个变量的赋值。我们把=叫做赋值符号。
注意=是赋值符号而不是等号,=的含义是“求右边式子的值,并把这个值赋给左边的变量”,而不是“左右两边的值相等”。
除了加,我们还可以做其他的运算。

1
2
3
4
a = 20 - 10 --减法
b = 20 * 10 --乘法
c = 20 / 10 --除法
d = 20 ^ 10 --乘方

你也可以为变量赋非整数值。

1
2
3
4
a = 10.4
b = 2.63
c = 0.1
pi = 3.141592

看下面的代码:

1
2
3
4
5
6
X = 5
Y = 3
Z = X + Y
X = 2
Y = 40
print(Z)

先自己思考一下,想想最后程序应该输出什么。然后试着运行这段代码,看看结果和你想的是否一样。
下面我们来分析这段代码。第一行是X = 5,这是一个赋值语句,我们把5赋给变量X。同理,变量y被赋予值3。到了第三行,注意我前面说的:

=的含义是“求右边式子的值,并把这个值赋给左边的变量”

所以,第一步,计算机会先计算右边的x + y的值。由于xy都是变量,于是计算机检查xy分别等于多少。检查的结果是X=5,Y=3。所以计算机把X=5,Y=3代入x + y,计算出x + y的值为8。第一步到这里就算完成了。
接着是第二步,计算机把上一步计算出的值,8,赋给左边的变量z
z的值就这样被确定下来了,等于8。除非你再次给z赋值,z的值将不会变化。所以即使我们在第4、5行改变了xy的值,z的值并没有改变。最后我们用print()输出z的值。所以,输出应该是8。

字符串

变量的“值”不仅仅可以是一个数值。变量的“值”还可以是字符串。
text = "Hello World!"
我们把”Hello World!”这样的东西叫做字符串,顾名思义,字符串就是一串字符。
我们可以用两个点(..)来连接字符串。

1
2
3
4
5
name = “Daniel”
age = “25”
text = “Hello, my name is “ .. name .. “, and I’m “ .. age .. “ years old.”
print(text)
–Output: “Hello, my name is Daniel, and I’m 25 years old.”

变量的命名规则

变量的名字不是随便取的,它有一些规则需要你遵守。

  • 变量名应该仅由大小写字母,数字,和下划线(_)组成。这意味着特殊字符(诸如 @#$%^&*.),汉字等等都是不被允许的。
  • 变量名是大小写敏感的。下面是三个不同的变量。它们的值分别是3,10,200。
    1
    2
    3
    sheep = 3
    SHEEP = 10
    sHeEp = 200
  • 你的变量名可以包含数字,但不能在开头。
    1
    2
    3
    test8 –这是对的
    te8st –这也是对的
    8test –这是错的
  • 最后,你的变量名不可以是保留字(也叫关键字)。保留字在编程语言中有着特殊的含义和作用。love2d使用lua语言,下面是一份lua的保留字列表。
    1
    2
    3
    4
    and    break  do   else     elseif while
    end false for function if
    in local nil not or
    repeat return then true until

    用途

    你可能好奇这有什么用。实际上,变量的用途太多以至于没有变量你什么也干不了:)
    举个例子吧。你可以用变量来追踪事物的变化。比如,你可以用一个叫coins的变量来表示玩家当前拥有的金币数量,每当玩家拾起一枚金币,你可以coins = coins +1。
    (觉得coins = coins +1有问题?我理解,coins当然不等于(coins+1)。但是别忘了,在编程里,=是赋值符号而不是等号。仔细想想看!这是初学者很容易犯的一个错误)

    总结

    我们可以用变量储存像是数字或是字符串这样的值。变量的命名时大小写敏感的,且你不能使用特殊符号,也不能使用保留字。