swift4.1 学习回顾(9--16)

上一篇中,回顾了一到八节的内容,以及主要的知识点。本次学习做的不太好的一点就是没有及时的回顾,总是在不停的学习新知识,以至于前面的知识遗忘的比较多。现在回顾有一点亡羊补牢的感觉。

9.循环语句

swift的循环语句与OC语言也类似,像for-in循环,while循环都和OC一样。但是swift中没有了for(;;){} 循环,是不是很意外啊?遍历数组啊,字典啊常用的是 for - in循环。for - in可以直接取到元素,而且效率也比较高。swift中还新增了 repeat-while循环,跟之前的 do-while循环类似。顺便提一下,swift中还有一种快速创建数组的方式:

let array = repeatElement(0, count: 10)

创建十个元素0 . 也算是一种循环吧。
回顾链接:https://www.jianshu.com/p/634f095f2dc3

10.Optional,可选类型 ?

swift中的一种全新的类型,别的语言中好像没有这种概念。可选的字面意思就是可以有值,也可以没有值。那么我们在使用的时候就需要明确的知道有没有值,这时候就会需要解包,也就是把可选类型变成确定的类型。这个知识点就需要多多使用才能体会可选类型的安全性。
回顾链接:https://www.jianshu.com/p/7a69c5806a53

11. 函数

函数是引用类型。函数也是比较常用,如果想要复杂起来也能复杂到难以读懂的一种类型。每种语言都有函数,函数常常作为一个个的功能模块,像高楼的每一块砖一样,层层堆砌,运用合理,才使得建筑成群,项目成立。swift的函数结构如下:
func 函数名(参数1,参数2,...) -> 返回值 {
函数体
}
跟别的语言一样,有函数名,参数列表,返回值,以及函数执行体。
注意: swift和C语言一样,支持不定参数的函数。
函数参数中的输入输出参数(inout)。
swift还支持函数的嵌套。
回顾链接:https://www.jianshu.com/p/65258455386d

12.闭包

闭包也是swift中比较难理解的内容之一。也是很重要的内容,常常使用的内容。在swift中,一个闭包又称为“闭包表达式”。
基本语法形式:
_ = { (参数1: 参数类型, 参数2: 参数类型....) -> 返回值类型 in
闭包执行代码
}
注意: 闭包与类型推导一起使用的时候,常常可以省略参数类型。

//完整有参数,有返回值的闭包
let c = { (a: Int, b: Int) -> Int in
    print("求两个整数的和")
    return a + b
}
let sum = c(100, 200)
print("sum = \(sum)")

// 省略参数,省略返回值,省略return, 省略 in 的闭包
let d: (Int, Int) -> Int = {
    $0 + $1
}
let sum2 = d(1,2)
print("sum2 = \(sum2)")

闭包还有尾随闭包,逃逸闭包,自动闭包等。
回顾链接:https://www.jianshu.com/p/12ab2cfbc0bb

13. 枚举 enum

swift中的枚举很强大,有类一样的特性,可以声明属性和方法,但是它是值类型。枚举还可以指定类型,还有关联值。

// 关联值
enum MyEnum {
    case value1(Void)
    case value2(Int)
    case value3(Float, Int, String)
    case value4
}

let e1 = MyEnum.value1(())
let e2 = MyEnum.value2(10)
let e3 = MyEnum.value3(1.2, 200, "你好")

func test(en: MyEnum) {
    
    switch en {
    case .value1(let v):
        print("关联值为空")
    case .value2(let v):
        print("关联值是:v = \(v)")
    case .value3(let v1, let v2, let v3):
        print("多个关联值: v1 = \(v1), v2 = \(v2), v3 = \(v3)")
    case .value4:
        print("无关联值")
    }
}
test(en: e2)

这里也用到了 值绑定。
回顾链接:https://www.jianshu.com/p/a265cabd12b6

14.结构体 struct

我们前面说过,swift中的Int, Float,String,Array等都是结构体类型。struct也是值类型,但是它也是可以定义属性以及方法的。swift中使用结构体的情形是非常非常多的。定义数据模型用的也是结构体。

swift中的结构体还有很多灵活的语法特性:
可定义存储式实例与类型属性;
可定义计算式实例与类型属性;
可使用属性观察者;
可定义实例与类型方法;
可定义初始化器;
可定义数组下标;
可对结构体进行扩展;
可遵循协议。

是不是很灵活呢?能用结构体的时候,我们就不使用类。也是从安全性以及效率的角度考虑的。
回顾链接:https://www.jianshu.com/p/a4bd059c1b10
回顾链接2:https://www.jianshu.com/p/3df9ea9ad63d

15.协议 protocol

swift中,协议也是很重要的一部分内容,比如声明某个类型,需要遵循某些协议才能实现某种方法。swift中,枚举、类以及结构体类型都可以遵循协议。swift中协议也是可以继承的。协议也可以声明成只针对于类类型的。
回顾链接:https://www.jianshu.com/p/8f3c0f33010f

16.类 class

因为swift也是面向对象的语言,自然少不了类了。类是引用类型,也是在项目中经常使用的类型。如果说一个函数就是一个建设大厦的砖头,那么类就像是一个个的部件,像窗户啊,墙啊,钢筋啊,水泥啊,甚至设计图啊,都可以称之为类。前面我们说过,结构体和类很像,结构体具有八大特性,那么类也是具有这八大特性的,而且除了这八大特性,还有四大特性:

1.继承:允许一个类继承另一个类的特征。
2.类型投射:允许在运行时检查并解释一个类的对象实例的类型。
3.析构器:允许一个类的对象实例释放它所分配的任一资源。
4.引用计数:允许对一个类的对象实例有多个引用。

回顾链接:https://www.jianshu.com/p/cb91d4106d18
回顾链接2:https://www.jianshu.com/p/dc2a21e11593
回顾链接3:https://www.jianshu.com/p/bb231442555c

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

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_x阅读 15,967评论 3 119
  • 第三天KEEP,连续17个动作,命快没了!有轻微想吐感,心跳加快,头晕。还好坚持下来了!
    于少少的改变阅读 135评论 0 0
  • 何谓命呢?其真正之意义,是指宇宙的某一法则,人事、物理、历史的命运,时间空间加起来,形成这一股强大力量的时候,人对...
    娑婆如斯阅读 762评论 7 34
  • 2月6日是春运的第六天,在省汽车站内,已经有排队返乡的旅客进站乘车。每个旅客都大包小包带着自己的物品,在经过安...
    安检乙班高璐阅读 327评论 0 0
  • 种树的人语重心长地说:“如果我每天都来浇水,每天都定时浇一定的量,树苗就会养成依赖的心,根就会浮生在地表上...
    云汉藏阅读 83评论 0 0