Swift中的协议

苹果对协议的定义

协议定义了适合特定任务或功能的方法,属性和其他要求的蓝图。 然后,该协议可以由类,结构或枚举采用,以提供这些要求的实际实现。 满足协议要求的任何类型都被称为符合该协议。

用简单的英语来说, protocol只是您为类,结构或枚举设置的一组要求或规则。 符合protocol任何类型都必须包括所需的属性和功能,以满足要求。 使用protocol将提供安全检查,以确保您的数据结构的完整性。

句法

 协议示例{ 
//定义在这里
}

协议的语法非常简单。 您将以与处理类或结构相同的方式来实现它。

协议实例

 协议人{ 
 变量名称:字符串{get} 
var age:字符串{get}
var hairColor:字符串{获取设置}
  } 

在这里,我们有一个名为Personprotocolprotocol具有三个存储的属性,分别是名称,年龄和头发颜色。 采用此协议的任何类,结构或枚举都必须包括这三个属性。 每个属性都必须声明变量是可获取的还是可设置的。 重要的是要注意,必须使用var定义属性,任何将其声明为常量的尝试都将引发错误。

 协议人{ 
 变量名称:字符串{get} 
var age:字符串{get}
var hairColor:字符串{获取设置}
  func walk() 
func run()
func eat()
  } 

协议不仅限于定义存储的属性,而且我们还可以实现功能。

我应该使用协议吗?

我的回答是“绝对”。 协议是一个非常有用的工具,最大的好处之一就是它为您的代码提供了安全检查。 协议就像个人助理,它提醒您在声明之前,特定的类,结构或枚举必须具有特定的属性。 当您要创建多个略有不同但仍源自同一标准设计的对象时,这很有用。 例如,假设您想创建一个人的对象。 此人可以是婴儿,幼儿和成人。 婴儿不能走路或跑步,幼儿可以上学,成人可以上班,如您所见,我们仍然可以使用人的对象,但是我们可以根据他们的年龄为每个人设置不同的协议。

尽管您可能还没有意识到协议在许多功能中的使用。 表视图委托和数据源是协议的一个示例。 为了正确实现表视图,我们必须声明我们的委托和数据源。