自定义字符串可转换

什么是“自定义字符串可转换协议”?在项目模式及以后的项目中如何提供帮助?

协议是什么的快速更新: 协议指定了某些事物应实现的一组行为,而没有提供针对这些行为的实现。 然后,该协议可以 由类,结构或枚举采用,以提供这些要求的实际实现。 满足协议要求的任何类型都被称为 符合 该协议。

我将首先创建一个名为Cat的类,并使用其属性名称,年龄和颜色。

我还创建了两个名为“ cuddles”和“ puddles”的猫的实例。 如果您发现我尝试打印这些实例时发现的所有打印内容均为“猫”。 这不是很有帮助,因为我看不到猫的属性,也无法区分两只猫。 我可以像下面所做的那样打印每个属性的插值字符串,但这可能会变得非常乏味且耗时:

让我们尝试采用自定义的String Convertible,但是要记住,要符合该要求,我们需要在该类中创建一个“ description”属性,并在其中返回一个字符串。

注意,当我们打印时,我们不需要调用description属性。 我们仅打印Cat的实例,它会自动打印description属性。 无论哪种方式,调用print函数都将打印相同的内容:

输入协议时,您可能会注意到还有另一个名为Custom DebugString Convertible的协议。 有什么不同?

好吧,实际上没有多少。 为了符合要求,有一个属性要声明,就像“自定义字符串可转换”一样。 在这种情况下,该属性称为debugDescription。 当您寻找更详细的信息(例如……)时,应将此协议用于调试目的。

当您尝试调试代码中的问题或者只是为了检查代码以确保其按您期望的方式工作时,我们最终会抛出很多打印语句。

出于多种原因,这两个协议可能是很好的工具,尤其是在使用自定义类时:

1.使用类时,它可以打印出有用的,有用的属性值。

2.在团队中工作时,description属性使您可以“描述性”,以便团队可以轻松读取代码中的输出。

3.采用和遵循非常容易,为什么不使用它呢!