赵走x博客
网站访问量:151472
首页
书籍
软件
工具
古诗词
搜索
登录
7、数学运算符
6、字符串
5、类型
4、常量
3、声明的威力
2、开始探索 Swift
1、Swift简介
4、常量
资源编号:76617
Switch基础教程第二版
书籍
热度:101
在很多情况下,变量都很有用,因为它们的值可随时间而变。在循环中,变量非常适合用于 存储临时数字、字符串以及本书后面将讨论的其他对象。 在Swift中,另一种可用于存储值的结构是常量。顾名思义,常量存储的值始终不变。不同于 变量,常量一旦赋值就不能修改,就像被锁定一样。然而,与变量一样,常量也有类型,且类型 一旦指定就不能改变。 下面来看看如何使用常量:声明常量z,并将变量x的值赋给它: ``` 10> let z = x z: Int = 42 11> ``` 第10行使用了let命令,这是用于创建常量的Swift关键字。常量z的类型和值都与变量x相同: 它是一个值为42的Int常量。 如果常量的值真是固定不变的,就不能将另一个数字或变量赋给它。下面来检验这一点: ``` 11> z = 4 error: repl.swift:11:1: error: cannot assign to value: 'z' is a 'let' constant z=4 ^ repl.swift:10:1: note: change 'let' to 'var' to make it mutable let z=x ^~~ var 11> ``` 试图给常量z重新赋值引发了错误。同样,Swift精准的错误报告指明了方向,它指出了错误 所处的行号(11)和列号(3)。在这里,Swift还更进了一步,建议将第10行的关键字let改为var, 这样就可以赋值了。对于Swift的这种聪明劲,你怎么看? 为何Swift要同时支持变量和常量呢?考虑到变量可以修改,而常量不能,使用变量不是更灵 活吗? 问得好,答案要在底层编译器技术中去找。知道内存单元存储的值不会变时,Swift编译器 可更好地决策和优化代码。对于不变的值,务必在代码中使用常量来存储;仅当确定值将发生变 化时,才使用变量来存储。总之,常量需要的开销比变量小,这正是因为它们不变。 在你学习Swift开发的过程中,将在确定值不变的情况下越来越多地使用常量。事实上,苹果 鼓励在代码中使用常量,不管这样做出于什么考虑。