首页 理论教育 协议使用的注意事项

协议使用的注意事项

时间:2023-06-23 理论教育 版权反馈
【摘要】:学会了如何定义协议之后,读者就可以使用协议去完成一些小任务。上一小节我们已经声明了printable协议,现在可以使用printable协议作为函数传参的类型限制,然后在函数实现中获取参数的description属性进行打印操作。代码示例如下:动手写8.1.2 UseProtocol控制台输出如下:控制台输出如下:本例中声明了两个函数,一个用于打印满足printable协议实例调用info方法的结果,另一个用于获取实例的description属性。

协议使用的注意事项

学会了如何定义协议之后,读者就可以使用协议去完成一些小任务。上一小节我们已经声明了printable协议,现在可以使用printable协议作为函数传参的类型限制,然后在函数实现中获取参数的description属性进行打印操作。代码示例如下:

动手写8.1.2 UseProtocol

控制台输出如下:

控制台输出如下:

本例中声明了两个函数,一个用于打印满足printable协议实例调用info方法的结果,另一个用于获取实例的description属性。本例中,函数传入参数指定的类型不是一个Swift类型,而是printable这个协议。使用协议去指定函数的传入参数会使函数的可扩展性更强,因为每个类都可能继承自不同的类,但是每个类可以满足同一个协议。如果指定传入参数的类型,那么需要编写一个很臃肿的类作为传入参数类型的基类,但是使用协议就会方便很多,只要实现了这个协议的类型都能作为参数传入。(www.xing528.com)

接着声明了Apple和Banana两个结构体,它们各自实现了printable的协议,最终使用printInstance和instanceDescription的方法将两者的信息打印了出来。细心的读者还会发现,在实现了某个协议之后,编写代码时Xcode会帮助开发者自动补全协议中的方法或者属性,这也避免了开发者在编写时因为不小心而写错属性或者方法名。

本例中声明了两个函数,一个用于打印满足printable协议实例调用info方法的结果,另一个用于获取实例的description属性。本例中,函数传入参数指定的类型不是一个Swift类型,而是printable这个协议。使用协议去指定函数的传入参数会使函数的可扩展性更强,因为每个类都可能继承自不同的类,但是每个类可以满足同一个协议。如果指定传入参数的类型,那么需要编写一个很臃肿的类作为传入参数类型的基类,但是使用协议就会方便很多,只要实现了这个协议的类型都能作为参数传入。

接着声明了Apple和Banana两个结构体,它们各自实现了printable的协议,最终使用printInstance和instanceDescription的方法将两者的信息打印了出来。细心的读者还会发现,在实现了某个协议之后,编写代码时Xcode会帮助开发者自动补全协议中的方法或者属性,这也避免了开发者在编写时因为不小心而写错属性或者方法名。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈