【发布时间】:2019-08-29 19:21:57
【问题描述】:
可能是一个愚蠢的问题,但是, 除了您无权访问的类、结构、枚举和协议之外。您为已创建的类(结构、枚举和协议)创建扩展的重要原因是什么?
【问题讨论】:
-
清晰度。组织。整洁。风格。协议扩展也有特殊的权力。
-
谢谢@matt 我在想,但我想知道是否有一些我想念的超级棒的东西。哈哈
-
@XavierJamesShelton 好吧,如果不替换默认的按成员初始化程序,就无法在结构声明中定义初始化程序。如果您在扩展中定义自定义初始化程序,并保持主声明没有任何初始化程序,您可以保留默认的成员初始化程序,并且也有您的自定义初始化程序。这对于引入新的“便利初始化器”非常方便(尽管对于结构来说,它们没有被正式称为),它委托给成员明智的初始化器。这不是最好的设计,但它是当今语言的一个怪癖
-
哦,这很酷谢谢@Alexander