1、声明变量
var str = "Hello,playground"
var是swift语言的关键字,我们可以把关键字理解为一种特殊的计算机指令。var这个关键字就是命令计算机为我们创建一个变量,变量的名称叫做str。“=”号是 赋值 操作,命令计算机把 值 ("Hello,playground")赋给变量str。
我们可以把变量理解为一个盒子,盒子的名字就是变量的名称str,赋值操作相当于在盒子里面放入内容,我们只需要使用盒子的名称就可以获取盒子里面的内容。
2、声明常量
与变量相对的概念是常量,在swift当中,我们用 let 关键字来声明常量
let anotherStr = "Hello,swift"
3、变量与常量的区别
变量与常量对应着两种不同的编程世界观。变量顾名思义,可以被改变的,编译器允许我们对str进行再次赋值
var str = "Hello,playground"
str = "change" // ok,成功修改
但编译器禁止我们对用 let 关键字声明的内容进行再次赋值。
let anotherStr = "Hello,swift"
anotherStre = "change" // error!!!!
在这里我们可以把常量理解为一个有锁的盒子。
在我们了解“值类型”,“引用类型”这两个概念后,我们会更多理解可变与不可变的含义。swift用let与值类型完整的定义了不可变。如果你目前还没有了解这个部分,那也没关系,后面我们会进行详细的描述。
4、为什么需要常量
首先是逻辑上的需要,比方说一天是24个小时,这个值是不应该被改变的,否则会产生逻辑错误,因此我们需要让编译器帮助我们保证常量在运行期间是一定不会被改变的。
常量与值类型能有效的避免在多线程编程环境下所带来的复杂问题(如果你目前不了解多线程,那么建议你先从概念上了解一下什么是线程以及为什么需要线程,线程是编程知识的一个重要内容,我们需要有意识的积极补充这部分知识,当然也不要忘了循序渐进。)
5、变量的盒子
为了方便描述变量的赋值,我们把变量比作了一个盒子,这个盒子其实就是计算机的一块物理内存。计算机的物理内存是由连续的物理单元格所构成,每个物理单元格都有自己独立的物理地址。
var str = "Hello"
如果忽变量的大小和类型问题,那么当我们声明str的时候,计算机首先会为我们开辟一块内存空间(盒子),然后把"Hello" copy 到这个变量空间中去。