Swift4语法新特性(二)

简介: Swift4语法新特性

六、协议支持混合


   Swift在对变量类型进行界定时,是支持使用协议的,例如,在Swift3中,我们可以编写如下的代码:


//swift3

protocol People {

   var name:String{set get}

   var age:Int{set get}

}


protocol Teach {

   func teachSwift()

}


class Teacher: People,Teach {

   var name: String = "jaki"

 

   var age: Int = 25

 

   func teachSwift() {

       print("teaching...")

   }

}


func printTeacher(p:Teacher)  {

   print(p.name,p.age)

   p.teachSwift()

}

上面的代码中,printTeacher方法里使用Teacher类对参数进行的界定,实际上这种做法并不好,Teacher类知识Teach协议与People协议的一种混合实现,在定义方法参数时,应该使用协议来进行参数的界定,可是Teacher类同时实现了两个协议,这在Swift3版本中是无法解决的问题,在Swift4中你则可以这样写:


protocol People {

   var name:String{set get}

   var age:Int{set get}

}


protocol Teach {

   func teachSwift()

}


class Teacher: People,Teach {

   var name: String = "jaki"

 

   var age: Int = 25

 

   func teachSwift() {

       print("teaching...")

   }

}


func printTeacher(p:Teach&People)  {

   print(p.name,p.age)

   p.teachSwift()

}

&复合可以对协议进行混合,更加贴近面向协议的编程方式。


七、一点总结


   从Swift语言第1个版本发布到Swift3和Swift3.2进行了语言内容和风格的大改,Swift4中进行的改动实际并不大而且大多是你开发中可能并用不到的特性。随着Swift语言的成长,这种语言的设计风格是与其他传统语言有着本质的区别,我个人感悟,Swift语言如下的特点确实值得我们学习与思考:


1.安全性极高


   所谓安全性,实际上就是语言是否容易出错,再通俗一些,即是一种编程语言是依赖其自身特性防止其出错还是依赖开发者经验防止其出错。我记得在初学JavaScript时感觉十分苦恼,因为JavaScript是变量弱类型的,并且其隐式转换十分危险(虽然代码编写起来畅快无比)。在Swift中,则基本不会出现类型不匹配,类型被隐式转换了等问题。当然,换句话说,这也使得编程者必须遵守更多的规则(或者说写更多的代码),虽然各有利弊,但对初学者来说,Swift明显要友好很多。


   Swift语言安全性极高表现在如下几点:


1.用let和var来分别声明常量和变量,let声明的量值不可改,从逻辑上保证变量安全。


2.变量类型必须明确(很多时候你没指定是因为编译器的推断功能),从类型上保证安全。


3.闭包分为逃逸和非逃逸,从逻辑上保证闭包使用的安全。


4.溢出运算符与算术运算符分开,从代码上保证安全。


5.类的初始化检查策略,从类的定义上保证安全。


6.删除++与--运算符,删除常规for循环,从习惯上保证安全。


2.灵活性极高


   Swift语言的灵活性非常有现代编程语言的特点,有其是其对泛型的支持,是的面向协议的编程方式在Swift语言上可以畅行无阻。灵活性表现在如下几点:


1.强大的泛型编程方式,协议关联类型等。


2.where子句可以精准的进行泛型约束。


3.Optioal类型和可失败构造方法的支持。


4.Any与AntObject类型的支持。


5.强大的枚举和结构体。


6.递归枚举的支持。


7.支持重载与自定义运算符。


3.编码体验极高


   编码体验这点并不完全依赖与Swift语法,也多有编译器的功劳。


1.支持字符串内嵌变量来构建字符串。


2.支持后置闭包的写法。


3.元组类型的支持。


4.支持默认隐式拆包类型。


5.支持区间运算符。


6.函数分内外两种参数名(外参数名可以省略)。


7.语法上支持便利构造方法。


8.语法层面支持的懒加载。


   上面只是列出了一些特性,Swift语言中有意思的地方多的举不胜举,如果你有意更深入的了解它,你可以搜索清华大学出版社的《Swift从入门到精通》一书,其中是我对Swift3进行的全面讲解,也包含iOS开发的部分知识和实战,你也可以直接通过QQ316045346联系我本人进行交流与互相学习。最后,一语以总结Swift语言:一门十分强大并且十分易入门的现代编程语言,只要你掌握了所有语法规则,想出错很难!

目录
相关文章
|
8月前
|
存储 算法 Swift
swift中的set特性
swift中的set特性
52 1
|
2月前
|
存储 定位技术 Swift
Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例
本文深入探讨了 Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例。枚举适合表示有限的、离散的状态或选项,结构体则适用于具有特定属性和行为的数据结构。两者在存储方式、继承性和灵活性上有所不同,但在实际开发中常结合使用,以充分发挥各自优势。
55 3
|
2月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
38 2
|
2月前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
61 9
|
2月前
|
Java Swift C语言
Swift 基本语法
10月更文挑战第23天
35 1
|
5月前
|
存储 编译器 Swift
Swift笔记:Swift中的扩展语法
Swift笔记:Swift中的扩展语法
146 1
|
6月前
|
存储 安全 Swift
Swift高级特性:泛型与协议
【7月更文挑战第10天】Swift高级特性:泛型与协议增强代码复用与类型安全。泛型允许编写通用代码,如`swap`函数和泛型`Stack`结构体,支持类型约束如`Comparable`。协议定义行为蓝图,类型遵循协议需实现其要求。通过两者结合,构建高效灵活的代码结构。
|
8月前
|
安全 Swift iOS开发
【Swift开发专栏】Swift基础语法详解
【4月更文挑战第30天】Swift是苹果2014年发布的编程语言,适用于iOS、macOS等多个平台。它比Objective-C更安全、现代、易学。本文主要介绍Swift基础:常量变量(`let`和`var`),数据类型(整数、浮点数、布尔、字符串),元组,可选类型(Optional)。此外,还涉及运算符(算术、比较、逻辑)、控制流(`if`、`for`、`while`、`switch`)以及函数和闭包的使用。通过这些基础知识的学习,可以帮助初学者快速上手Swift。
83 1
|
8月前
|
安全 Swift iOS开发
swift语法
swift语法
64 1
|
8月前
|
Swift
Swift语言的语法
Swift语言的语法
67 2