Swift基础教程1.5 声明的威力_Swift基础教程1.5 声明的威力试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Swift基础教程 > 1.5 声明的威力

Swift基础教程——1.5 声明的威力

如果回想一下中学的代数课,你肯定还记得变量是表示某种量的占位符。当你说x等于12或y等于42时,实际上是在声明,将某个变量声明为特定的数字。 Swift让代数课老师自豪,它也能够声明变量,但使用的语法稍有不同。请输入如下内容: 4> var x = 12 x: Int = 12 5> 你刚才使用关键字var声明了第一个变量。第4行让Swift将变量x声明为12,Swift完全按你的指示做,将变量x声明为12。不仅如此,Swift还更进一步:将x声明为值为12的Int变量。 Int是什么呢?它是integer的缩写,表示不带小数部分的整数。通过像前面那样输入12,让Swift对被赋值的变量做出了推断:x是一个值为12的整数变量。在响应中,Swift使用表示法x: Int指出了这个变量的类型。稍后将更详细地介绍这种表示法。 前面不费吹灰之力就声明了一个名为x的变量,下面将问题再弄得复杂一些,声明第2个变量: 5> var y = 42.0 y: Double = 42 6> 这里添加了小数点和0,这种表示法告诉Swift,y是一个Double变量。Double表示带小数部分的数字,不用于表示整数,而用于表示实数(也叫浮点数)。 Float还是Double? 如果你使用过其他编程语言,可能熟悉浮点数,知道它们分两种:Float和Double。Float通常长32位,而Double通常长64位(精度是Float的两倍)。除Double类型外,Swift也支持Float类型。然而,鉴于现代计算机体系结构是64位的,Swift默认使用Double类型来表示浮点数,而在本书的示例中,总是使用Double类型。 下面简单地复习一下。在前面的两种情况下,Swift都给变量指定了类型。变量x和y的类型分别是Int和Double,只要不重新启动REPL,这种差别将始终存在。 声明变量后,就可将不同的值赋给它。例如,前面将数字12赋给了变量x。将不同的值赋给变量很简单,只需使用等号即可: 6> x = 28 7> 注意到将数字28赋给变量x时,Swift没有任何反应。下面核实一下这个新值是否赋给了变量x: 7> println(x) 28 与我们预期的一样,x存储的是最后一次赋给它的值:28。 还可以将一个变量的值赋给另一个变量。为核实这一点,下面将变量y赋给变量x。你猜结果将如何呢? 8> x = y <REPL>:8:5: error: 'Double' is not convertible to 'Int' x = y ^ 8> Swift显示的错误消息非常详细,提供了错误所在的行号和列号(这里是第8行和第5列),并使用冒号分隔它们。在错误消息后面,还显示了相应代码行的内容,并用脱字符指出了错误的位置。最后,由于存在错误,在接下来显示的提示符中没有将数字增加到9,而再次使用以前的数字8。(这相当于Swift在对你说:“哥们,别紧张,再试试。”) 变量名包含什么? 在Swift中,变量名可以用除数字外的任何字符打头。前面使用的是单字母变量名,但提倡使用更长、意义更丰富的变量名,以提高代码的可读性。 这里到底出了什么问题呢?很简单,你试图将类型为Double的变量y赋给类型为Int的变量x,这种赋值违反了Swift的类型规则。稍后将更详细地介绍类型,现在来看看能否规避这种规则。 假设你一根筋,就是要将y的值赋给x,即便它们的类型不同。你完全可以达到目的,但需要做些“说服”工作。前面说过,x的类型为Int,而y的类型为Double;考虑到这一点后,可输入如下语句: 8> x = Int(y) 9> println(x) 42 10> 经过一番“说服”后,赋值成功了。个中原因是什么呢? 第8行将变量y的Double值“转换”成了变量x的类型。只要进行显式转换,Swift就允许这样赋值。稍后将更详细地讨论类型转换。 保险起见,我们使用命令println显示了变量x的值。与预期的一样,现在变量x的值为整数42。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Swift基础教程》其他试读目录

• 1.1 革命性的改良
• 1.2 准备工作
• 1.3 准备出发
• 1.4 开始探索Swift
• 1.5 声明的威力 [当前]
• 1.6 常量
• 1.7 类型
• 1.8 字符串
• 1.9 数学运算符
• 1.10 布尔类型
• 1.11 轻松显示
• 1.12 使用类型别名
• 1.13 使用元组将数据编组
• 1.14 可选类型
• 1.15 小结