分享十条实用的Swift小提示

2020-01-09 00:14:44刘景俊

前言

虽然编程语言不会那么容易消逝,但坚持衰落范例的开发小组正在这么做。如果你正为移动设备开发应用程序,并且你还没有研究Swift,那么注意:当Swift涉及到Mac、iPhone、ipad、Apple Watch和未来设备的应用开发时,它不仅会排挤掉Objective-C,而且还会取代在Apple平台中做嵌入式开发的C语言。 Swift有大量有趣的语法、特性、特点,只要掌握了用法就可以利用好它们。

在这篇文章中我会带你浏览我选择出的10条小提示,并附有已验证的代码供大家试用。

1.类与协议的existential

Existential类型允许我们说出想要一个类型具有哪种功能,而不用请求某些特定的东西。比如我们可以写一个接收类或子类的函数:


func process(user: User) { }

之后我们写一个函数,让它能接收符合某个协议的任意类型对象:


func identify(thing: Identifiable) { }

Swift允许我们让existential同时代表类与协议

下例中,有一个协议和一个符合该协议的类


protocol CanCook { }
class CelebrityChef: CanCook { }

之后再有一个类,并附有一个子类


class Appliance { }
class Hairdryer: Appliance { }

现在我们有了一个定义东西是否CanCook的协议,和一个定义我们家里东西的类。当我们把这两个合二为一时候就变得复杂了——用餐饮工具(Appliance)做饭。