【发布时间】:2016-01-05 08:38:00
【问题描述】:
我在github上看到了一些源代码,像这样: functional-swift
我们可以看到有一个名为 Ship 的结构的定义,其中有一些变量。从下面的代码我们可以看出其中也有一些功能。它的写法如下:
struct xxx {
}
extension xxx {
func yyy() {}
}
我也可以用以下样式定义结构:
struct xxx {
func yyy() {}
}
那么这两种风格有什么不同呢?有快速编程风格指南吗?
【问题讨论】:
-
请查看此question。我认为它涵盖了您的问题。
-
它有助于将您的代码组织成相关方法组,特别是在采用协议时(如引用的问答中所述)。推荐这里:github.com/raywenderlich/swift-style-guide#protocol-conformance.
-
如何准确地将方法分组到扩展中是个人喜好问题。我不会像您链接到的示例代码那样为 each 方法定义扩展。
-
我不确定这是不是那个问题的重复,因为那个问题是关于带有协议的扩展,它有明显的好处,而这不是。
-
@GoatInTheMachine:据我了解,这两个问题都是关于何时使用扩展(而不是直接在结构/类定义中定义所有方法)。另一个 question 没有提到协议,所以对我来说这似乎是同一个问题。 – 这是另一个问题的答案,它表明协议一致性是一个主要用例,也是代码组织:“对我来说,这似乎完全合理,因为您可以使用扩展来公开不同的逻辑部分到不同的扩展。”