swift总结(整理)
--
基本语法
Import
swift的import
等同于C/C++的include
,不过swift的import
避免了include
的重复包含问题,相同的头文件代码只会拷贝一次.
可以直接使用
import
引用C/C++及Objective-C的框架
注释
注释就像帮助文本在Swift程序中,它们被编译器忽略,多行注释以/*
开头并以*/
字符结束.单行注释用//
开头
分号
在swift里一行代码只有一句时可以不要,只有一行有多条语句时才是必不可少的(建议每条语句都占一行).
标识符
Swift标识符是用于识别一个变量,函数,或任何其它用户定义的项目的名称.一个标识符开始于字母A到Z或a到z或下划线_后跟零个或多个字母,下划线和数字(0〜9).
Swift不允许标识符中有标点字符.如@.$和%.Swift是区分大小写的编程语言。因此,Manpower
和manpower
在Swift中是两个不同的标识符.
关键字
关键字在Swift中保留.这些保留字不要用作常量或变量或任何其它标识符名称,除非它们用反引号转义:
在声明中使用关键字:
class //声明一个类
deinit //类的反初始化函数,用于释放类的引用链接
enum //声明枚举类型
extension //扩展已有类的类方法
func //声明一个函数
import //声明包含框架、库
init //一个类的构造函数(C++中构造函数与类同名,swift里固定使用init
)
internal //声明类的访问权限(默认),在当前应用或模块可见
public //在模块、Framework(框架)外可见
private //只能在当前文件中使用
let //声明常量
operator //声明变量为可选类型(可以为空,!定义强制拆解,没有值则为nil.?定义需要拆包之后输出)
protocol //声明一个协议,协议可以将没有公共父类,但是有类似行为的对象归为同一类
static //声明静态变量
struct //声明一个结构体
subscript //给自定义类加下标(了解不多)
typealias //给类型取别名
var //声明变量
在语句中使用关键词
break,case,continue,default,do,else,fallthrough,for,if,in,return,switch,where,while
以上关键字用于程序的三种基本结构(顺序,选择,循环)
在表达式和类型中使用关键字
as dynamicType false is nil self Self super true _COLUMN_ _FILE_ _FUNCTION_ _LINE_
以上关键字部分了解(现阶段使用不多)
在特定情况下使用的关键字
associativity convenience dynamic didSet final get infix inout lazy left mutating none nonmutating optional override postfix precedence prefix required right set Type unowned weak willSet
使用时再详细讲解
--
数据类型
内置数据类型
Swift为程序员提供内置以及用户定义的种类数据类型。 以下是声明变量使用最频繁的基本数据类型的列表:
1.Int 或 UInt - 这是用于整数,更具体地可以使用Int32,Int64来定义32或64位有符号整数,其中作为UInt32或UInt64用来定义32或64位无符号整数的变量.
2.Float - 这是用来表示一个32位浮点数,一般用于使用较小的小数点数字.
3.Double - 这是用来表示一个64位浮点数,用于非常大的浮点值.(比Float精度高)
4.Bool - 这代表一个布尔值,真或假(true、false).
5.String - 这是有序字符集合.
6.Character - 这是一个单字符字符串.
7.Optional - 这表示可以容纳一个值或没有任何值的变量.
8.Array - 容纳一组相同类型的值(有序的)
9.Dictionary - 容纳相同类型组的键值对
类型别名
使用typealias
给已有类型取别名
类型安全
Swift是一种安全的语言,这意味着,如果代码的一部分需要一个字符串,那么不能错误地传递一个int.由于Swift是类型安全的,当类型检查时它执行编译代码并标志类型不匹配的错误.
类型推断
在Swift编译代码时,类型推断使编译器自动推导出特定表达式的类型,简单地通过检查所提供的值.
--
三种基本结构
选择
用于选择结构的关键字: if
else
switch
case
default
fallthrough
if condition {
} else {
}
switch control expression {
case pattern: //分支没有语句用break,继续执行用fallthrough
default:
}
循环
用于循环结构的关键字: