Tag: Typealias

Swift编程入门第12部分-类型别名,属性观察器以及Self与self

之前,我们谈论过中央车站的调度和关闭。 入门Swift编程第11部分-大型中央调度和关闭 以前,我们了解了代码结构,可读性和其他一些原理。 medium.com 这是一个艰难的过程,但您会很高兴知道所有困难的事情都已经过去了。 本文将介绍一些新概念,以帮助您提高代码的可读性,简化代码,并在Self与self领域中提供一些背景,而不是大写S 类型别名有助于使我们的代码更具可读性,并使我们作为开发人员的生活更加可忍受。 您可能会理解这在其他语言中被称为alias或typedef ,但是在Swift中我们使用typealias 。 Typealias只是将类型重命名为更易于使用或理解的名称。 在代码中,您可以使用typealias来获取原始类型并将其重命名为更适合您的上下文的名称。 让我们看一个例子: 接下来,属性观察器很不错,因为它们可以帮助您自动执行每次变量更新时需要发生的某些事情。 财产观察员基本上观察财产的变化。 它们有两种形式。 willSet —在设置变量之前执行操作 didSet —设置变量后执行操作 我几乎从未使用过willSet ,但是我didSet都在使用didSet 。 属性观察器适合您的代码,如下所示: 是,有一点不同! 即使看起来很细微,差异也很大。 在类和结构中,有时我们必须从该实体拥有的方法中引用该实体的属性。 在这种情况下,必须使用小写的self 。 让我们看一个例子

快速,更优雅的代码:Typealias

您是否在使用长签名功能时遇到麻烦? 您认为重命名某些类型是个好主意吗? 好吧……只是看看 typealias 。 什么是Typealias? 我第一次发现有一种叫做“别名”的东西,对我来说有点奇怪,即使知道它的用途后,在我看来,使用它也没有“好”的意义。 到目前为止,我是它的粉丝! 在开始使用Swift typealias之前,我想指出的是,别名并不是 Swift编程语言的专有术语,实际上它是一个计算术语,您可以在许多其他古老和现代的语言中找到“别名”的逻辑(例如作为Swift)编程语言… Typealias是现有类型的命名别名,这意味着通过使用它,您将能够命名类型,以使程序更方便。 请记住,typealias 不是新类型,它只是现有类型的名称,您可以将其视为类型的替代名称(它可能是“快捷方式”,您将很快阅读)。 如何实现typealias? 简单来说,您可以将typealias实现为: typealias yourCustomName =现有类型 而这一切! 让我们开始做一些非常简单的代码: 实施: typealias Strings = [String] 可让您声明字符串数组( [String] )类型的变量(例如instance),如下所示: var strs: Strings? 现在strs将是[String]类型的变量。 非常有趣! 老实说,对我来说我不这么认为。 如果您想到的是“到目前为止,它是没有用的”,我会同意agree。 毫无疑问,为这种情况创建类型别名在某些情况下将其声明为var strs: [String]?并不是那么有用var strs: [String]? 读起来会更好。。。让它平静下来,让我们尝试另一种方法:将字符串字典的类型别名声明为键,将整数声明为值: typealias CustomDict =字典 在声明字典的泛型参数的具体类型( )时,应该节省一些“精力”,就像“双向2合1保存”! 但是,仍然不是使用typealias的充分理由,对吗? 这导致: 为什么要使用typealias? 实际上,通常在使用非平凡的应用程序时,它应该具有自己的管理器来处理指定功能的任务,例如通过网络连接发送和接收数据,获取设备照片(访问系统资源),从磁盘写入数据或从磁盘读取数据等等。因此,实现这些管理器可能需要为其方法使用“相当长”的签名。 让我们更进一步,为更多“真实世界”案例编写一些代码: 例: 为了使其更简单,我将重点介绍方法的签名,而不管它们的实际内部实现是什么(管理者目的)。 考虑我们有包含foo […]