什么是变量?

变量是用来保存值的一种手段, 它是某个计算结果的别名

之后使用的时候, 可以直接存取这个值

当使用变量的时候, 会根据符号表找到对应的内存, 而当对一个变量赋值时, 会修改找到的内存

 

再思考一下

首先抽象地将它看成一系列的运算, 而并非一个值

这样的话, 这种抽象的概念就类似于一个函数, 它才真正进行一系列的运算

两者的核心区别在于: 变量的运算是瞬间的

它的确会进行一系列的运算, 但是进行的运算是一次性的

 

可以多次运算的方法: 函数

既然变量是一次性的运算, 那么很多时候都并不能满足需求

需要一种可以根据当前上下文而改变的运算(可能是过程, 可能仅仅是值)

这种方法就是函数, 它的运算可以根据参数的变化而改变

 

拥有状态的函数: 包(变量)

函数的确可以输入参数, 但是还是不够好用

需要能够进行迭代的运算, 或者有些参数经常用到

要求这样的函数能够保存某些东西, 也就是拥有 "状态"

而这样的一个概念有多种名字: 匿名函数, 包, 类...

这样的东西它就从函数变化为了变量, 就像咬尾蛇一样

 

就像递归一样, 根据这些简单的概念, 可以封装出足够便利的东西