Swift 语言新特性总结(1)

1、var 声明变量,let 声明常量

2、溢出操作符——&+,&-,&*,Swift的哲学是触发陷阱比潜在安全漏洞要好

3、字符串支持插值\(var)占位符,支持复合赋值操作符+=连接字符串

4、swift必须手动转换类型,不会自动类型转换,譬如int8+int16会报错

5、switch语法与objc差别很大,执行一个分支马上停止,不需要break语句跳出,反而想要穿透到下面分支还要用fallthrough语句。

switch语句每一个分支不能空操作。

Switch既支持一个值与给定值比较,也支持多个值与给定值比较,还支持区间值与给定值比较,多个值用逗号分隔,区间则用三个点…来界定。

switch支持值绑定,在case语句中声明变量或常量,其值绑定为状态码的值。switch绑定值主要配合where语句使用,能额外检查一些条件,这个特性可以创建动态筛选条件。

6、元组——具有逻辑关联的两个或多个值的有限组合,支持索引访问,也可以命名访问,如:

var statusCode

var errorString

let error = (code:statusCode, description:errorString)

元组可以在switch的区间匹配中应用,下划线_可用作通配符,匹配任何值。

7、if-case语法 为只有一个分支的switch语句提供优雅的替代品。

8、区间既可在switch语句中匹配使用,也可以在for-in循环中使用。

9、通配符_既可以在switch语句使用,也可以在for-in语句中替代迭代器,这样就可以忽略迭代器。

10、for-in循环支持where子句,如for i in 1…100 where I%3==0 { }

Where子句是用来替代for-in中的if条件判断,使代码看起来更优雅,是可替代的。

11、类型推断——根据上下文推断出实例的类型,不需要显式声明。有些情况下需要明确声明类型,但一般来说,建议尽量利用类型推断。

12、repeat-while替代了do-while

13、导入framework方式如:importCocoa

不需要#符号,也不需要双引号“”或者尖括号<>

14、字符串双引号前不需要@符号

15、每个字符串都是一个String对象,虽然其本身不是一个集合,但是其底层内容确实以集合的形式存在,字符串的characters属性表示组成这个字符串字符集合。

组成字符串的每个字符也是一个Character对象。

16、\u{}表示Unicode标量,十六进制数放在花括号里。每个字符都有一个或多个Unicode标量构成。一个Unicode标量对应一个基本字符。

多个 Unicode标量构成的字符为组合标量,通常也有有单个标量表示形式,而且其等价。

对于两个字符或者两个字符串,如果它们具有相同的语言学含义和外观,无论是否用相同的Unicode标量创建,都认为两者相等。

标准等价意味着无论用组合标量还是预组合标量,结果都会被当做单个字符。

17、swift不允许直接用索引下标[]来访问字符串中的指定字符,因为swift无法在不遍历前面每个字符的情况下知道指定的索引对应于哪个Unicode标量,该索引必须要先获取到start索引,再通过编译计算到指定索引。

18、swift任何类型都可以用可空类型来说明一个实例可能是nil,而objc-c只允许对象是nil

19、声明实例变量时,在类型后跟随问号?,则表示该变量是可空类型,可以为nil,也可以赋了值。

20、实例变量后跟随感叹号!,其作用是强制展开,无论实例变量是否有值,都会访问封装的值。感叹号!假设有这样一个值,如果没有,这样展开会产生运行时错误。

string实例变量和string!实例变量不是相同的类型——如果你有一个String变量,就无法在不展开可空实例的情况下将String?的值赋予给这个变量。

21、可空实例绑定——如果有值,就将其值赋予一个临时常量或变量,并且使这个常量或变量在条件语句第一个分支代码中可用。其语法与在条件语句中创建常量或变量一致,只是不需要再强制展开可空实例了,这个操作自动完成。

If let Instance = nilInstance, let Instance = nilInstance {}

22、声明实例变量时,在类型后跟随感叹号!,则表示该变量是隐藏式展开可空类型。隐式展开可空类型与普通可空类型重要区别就是不需要展开,使用上不需要if条件语句了。如果这种隐式展开可空类型没有值的话,访问其值会直接导致运行时错误。建议如果某个实例可能为nil,就不要使用隐式展开可空类型。

23、实例后面跟问号?——可空链式调用,与可空实例绑定类似,两者重要区别是,可空链式调用允许把多个查询串联为一个可空实例的值。

24 、感叹号跟在实例后面,其作用就是断言实例不为空,若真为空就崩溃,相当断言效果。

25、nil合并运算符??类似三目操作符?:

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

推荐阅读更多精彩内容