《写给大忙人看到Swift》第1章.Swift介绍 阅读笔记

2016-03-03  本文已影响68人  dibadalu

1.1 基本语法

1.1.1 变量和常量

这样的声明规则适用于Swift中的所有数据类型,有别于Objective-C,在Objective-C中,是由类型本身决定是否是可变还是不可变。在Swift中,一个对象的可变版本与不可变版本具有相同的类型——并不是子类(subclass)的关系。

这样的规则有助于Swift成为一门具有安全性的编程语言:编译器会阻止混合类型之间进行操作,并可以引发异常结果。

在选择是否指明类型时,要考虑两件事:

  1. 代码的可读性
  2. 当类型可以通过编译器推断时,开发者可能依然希望明确地指定某种类型,来为代码增加额外的安全检查。

1.1.2 字符串插值

1.2.3 流程控制

*** 条件语句 ***

if语句

与Objective-C有些不同之处:

switch语句

switch语句基于Objective-C,不过在Swift中,它更加强大,有两个重要的区别:

*** 循环语句 ***

for语句

for语句的检测表达式可以忽略括号

for-in语句

可以迭代集合中的每一项。有两种新的区间运算符可以用于for-in循环语句中的迭代区间。

  1. “..<”是半开区间运算符,它包含区间最左端的值,但是不包含最右端的值。
  2. “...”是闭区间运算符,它包括区间两端的值。

while语句

只要检测条件为true,就会一直进行迭代。如果一开始,检测条件就为false,循环语句不会迭代任何内容,并且忽略掉整个while语句。

do-while语句

在循环的尾部计算检测条件,这样,就可以保证循环语句至少被迭代一次,即使当检测条件为false,也会迭代最后一次(可能发生在第一次迭代)。

注意:

1.2 基本数据类型

1.2.1 整型

存储整形值的基本类型是Int。
当需要特定长度的整形时,有Int8、Int16、Int32和Int64。
Int类型同样有无符号的版本,如UInt8等。

注意:

1.2.2 Double和Float

当使用小数时,编译器总是将其推断为Double类型,而不是Float。因此,如果不需要64位的高精度,需要显式地将变量声明为Float。

1.2.3 布尔型

Swift使用true和false表示布尔值。在Swift中只有表达式显式地返回一个布尔类型才能被用于布尔值的声明。

1.2.4 字符串

在Swift中,字符串只需要简单地置于双引号内即可。使用“+”或“+=”可以对字符串进行拼接、追加。但是,不能直接将Character与String进行拼接,需要将Character包含于新的String来进行拼接。
另外,Swift可以通过“==”对String直接进行比较。

1.2.5 数组

数组是集合类型中的一种,用来存储相同类型的有序列表。在Swift中,声明数组时,必须指定数组包含的类型。
与OC不同,在Swift中,可以把结构体、枚举和类添加到数组中,这是因为如果将枚举或结构体添加到数组中,此时添加的是对象的一份副本,而不是原始对象的引用;如果添加的是类,那么会将对象的引用添加至数组中。同样的规则适用于数组的传递,因为数组是结构体,所以数组传递的时候是一份副本,而数组中的元素是副本还是引用,取决于该元素是结构体、枚举还是类。

1.2.6 字典

字典是存储无序相同类型的集合,存储在其中的每一个对象都有唯一的一个Key。

上一篇 下一篇

猜你喜欢

热点阅读