Swift 3 的变量命名约定思路

End*_*esh 4 naming naming-conventions swift swift3

关于变量名: 假设有一些类似于以下的代码:

class AgentModel
    var name: String?
    var office: String?
    var phone: String?
Run Code Online (Sandbox Code Playgroud)

命名约定是否会规定将这些命名为

class AgentModel
    var nameString: String?
    var officeString: String?
    var phoneString: String?
Run Code Online (Sandbox Code Playgroud)

我无法确定 Apple 是否明确制定了是否首选一种做法的指导方针,但似乎 Swift-y 似乎并不总是遵循后者,除非有必要。


关于对象名称:同样,对象是否应该被命名

AgentModel
Run Code Online (Sandbox Code Playgroud)

还是应该如下命名?

Agent
Run Code Online (Sandbox Code Playgroud)

乍一看,我认为这将遵循相同的约定。我是对的,还是这会是规则的例外?


人们对此有想法和/或参考吗?谢谢!

Mar*_*n R 6

swift.org上的API 设计指南状态(强调已添加):

省略不必要的词。名称中的每个词都应传达使用地点的显着信息。

可能需要更多的词来阐明意图或消除歧义,但应省略那些与读者已经掌握的信息冗余的词。特别是,省略仅重复类型信息的词。

和:

根据它们的角色而不是它们的类型约束来命名变量、参数和关联类型

所以

var nameString: String?
var officeString: String?
var phoneString: String?
Run Code Online (Sandbox Code Playgroud)

显然推荐。

var name: String?
var office: String?
var phone: String?
Run Code Online (Sandbox Code Playgroud)

很好,但可能会进一步改进,例如使用phoneNumber 代替phone