Swift基础之开篇

Swift简介

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。
2015年12月4日,苹果公司宣布其Swift编程语言现在开放源代码。长600多页的 The Swift Programming Language 可以在线免费下载。

感言

至今swift才刚两岁,但是但是作为计算机语言家族的新宠,这位磨人的小妖精已经吸(gou)引(da)了大批脑残粉,而作为苹果开发者的我们,还有什么理由不赶快去一亲芳泽呢,小朋友们,再不开始马上立刻上车终将被历史的车轮碾成粉末,so,let us go!

Swift完整学习路线


基础部分-The Basics

常量和变量 声明常量和变量 类型标注 常量和变量的命名 输出常量和变量 注释 分号 整数 整数范围 Int UInt 浮点数 类型安全和类型推断 数值型字面量 数值型类型转换 整数转换 数整数和浮点数转换 类型别名 布尔值 元组 可选 nil if 语句以及强制解析 可选绑定 隐式解析可选类型 错误处理 断言


基本运算符-Basic Operators

术语
赋值运算符
算术运算符
组合赋值运算符
比较运算符
三目运算符
空合运算符
区间运算符
逻辑运算符


字符串和字符-Strings and Characters

字符串字面量
初始化空字符串
字符串可变性
字符串是值类型
使用字符
连接字符串和字符
字符串插值
Unicode
计算字符数量
访问和修改字符串
比较字符串
字符串的 Unicode 表示形式


集合类型-Collection Types

集合的可变性(Mutability of Collections)
数组(Arrays)
集合(Sets)
字典(Dictionaries)


控制流-Control Flow

For-In 循环
While 循环
条件语句
控制转移语句(Control Transfer Statements)
提前退出
检测 API 可用性


函数-Functions

函数定义与调用(Defining and Calling Functions)
函数参数与返回值(Function Parameters and Return Values)
函数参数名称(Function Parameter Names)
函数类型(Function Types)
嵌套函数(Nested Functions)


闭包-Closures

闭包表达式(Closure Expressions)
尾随闭包(Trailing Closures)
值捕获(Capturing Values)
闭包是引用类型(Closures Are Reference Types)
非逃逸闭包(Nonescaping Closures)
自动闭包(Autoclosures)


枚举-Enumerations

枚举语法(Enumeration Syntax)
使用 Switch 语句匹配枚举值(Matching Enumeration Values with a Switch Statement)
关联值(Associated Values)
原始值(Raw Values)
递归枚举(Recursive Enumerations)


类和结构体-Classes and Structures

类和结构体对比
结构体和枚举是值类型
类是引用类型
类和结构体的选择
字符串(String)、数组(Array)、和字典(Dictionary)类型的赋值与复制行为


属性-Properties

存储属性(Stored Properties)
计算属性(Computed Properties)
属性观察器(Property Observers)
全局变量和局部变量(Global and Local Variables)
类型属性(Type Properties)


方法-Methods

实例方法(Instance Methods)
类型方法(Type Methods)


下标脚本-Subscripts

下标语法
下标用法
下标选项


继承-Inheritance

定义一个基类(Defining a Base Class)
子类生成(Subclassing)
重写(Overriding)
防止重写(Preventing Overrides)


构造过程-Initialization

存储属性的初始赋值
自定义构造过程
默认构造器
值类型的构造器代理
类的继承和构造过程
可失败构造器
必要构造器
通过闭包或函数设置属性的默认值


析构过程-Deinitialization

析构过程原理
析构器实践


自动引用计数-Automatic Reference Counting

自动引用计数的工作机制
自动引用计数实践
类实例之间的循环强引用
解决实例之间的循环强引用
闭包引起的循环强引用
解决闭包引起的循环强引用


可选链-Optional Chaining

使用可选链式调用代替强制展开
为可选链式调用定义模型类
通过可选链式调用访问属性
通过可选链式调用调用方法
通过可选链式调用访问下标
连接多层可选链式调用
在方法的可选返回值上进行可选链式调用


错误处理-Error Handling

表示并抛出错误
处理错误
指定清理操作


类型转换-Type Casting

定义一个类层次作为例子
检查类型
向下转型(Downcasting)
Any 和 AnyObject 的类型转换


嵌套类型-Nested Types

嵌套类型实践
引用嵌套类型


扩展-Extentions

扩展语法
计算型属性
构造器
方法
下标
嵌套类型


协议-Protocols

协议语法(Protocol Syntax)
属性要求(Property Requirements)
方法要求(Method Requirements)
Mutating 方法要求(Mutating Method Requirements)
构造器要求(Initializer Requirements)
协议作为类型(Protocols as Types)
委托(代理)模式(Delegation)
通过扩展添加协议一致性(Adding Protocol Conformance with an Extension)
通过扩展采纳协议(Declaring Protocol Adoption with an Extension)
协议类型的集合(Collections of Protocol Types)
协议的继承(Protocol Inheritance)
类类型专属协议(Class-Only Protocol)
协议合成(Protocol Composition)
检查协议一致性(Checking for Protocol Conformance)
可选的协议要求(Optional Protocol Requirements)
协议扩展(Protocol Extensions)


泛型-Generics

泛型所解决的问题
泛型函数
类型参数
命名类型参数
泛型类型
扩展一个泛型类型
类型约束
关联类型
Where 子句


访问控制-Access Control

模块和源文件
访问级别
访问控制语法
自定义类型
子类
常量、变量、属性、下标
构造器
协议
扩展
泛型
类型别名


高级操作符-Advanced Operators

位运算符
溢出运算符
优先级和结合性
运算符函数
自定义运算符

后记

令我欣慰的是其中相当一部分概念在Object-C中已经存在,不然不然……额,无法想象。嗯,就是这样,真汉子就是干,万丈高楼平地起,不怕,我们慢慢来/(ㄒoㄒ)/~~
另外,感谢中文版 Apple 官方 Swift 教程《The Swift Programming Language》的翻译者们,感兴趣的可以Star一下~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容