在 Swift 中,全局常量似乎应该使用驼峰命名法。
例如:
let maximumNumberOfLoginAttempts = 10
这是正确的吗?
我习惯使用C语言中的全大写,例如MAXIMUM_NUMBER_OF_LOGIN_ATTEMPTS
,但我想遵守Swift的约定。
在 Swift 中,全局常量似乎应该使用驼峰命名法。
例如:
let maximumNumberOfLoginAttempts = 10
这是正确的吗?
我习惯使用C语言中的全大写,例如MAXIMUM_NUMBER_OF_LOGIN_ATTEMPTS
,但我想遵守Swift的约定。
根据 Swift 3 API 指南,类型和协议的名称应该使用 UpperCamelCase。其他所有名称都应该使用 lowerCamelCase。
https://swift.org/documentation/api-design-guidelines/
理想情况下,你的全局常量会被放置在某种 enum
、extension
或者 struct
内部,该空间的名称应为 UpperCamelCase,其中所有属性的名称应为 lowerCamelCase。
struct LoginConstants {
static let maxAttempts = 10
}
就像这样访问:
if attempts > LoginConstants.maxAttempts { ...}
(感谢Ryan Maloney的回答,强调了enum
的好处)
我一直在考虑是否在类级别的常量中使用首字母大写的驼峰命名法。例如:
static let MaximumNumberOfLoginAttempts = 10
它仍然是驼峰式命名(似乎是苹果公司推荐的方式),但首字母大写可以清晰地表明该值是不可变的。
LoginConstants()
实例化它,但这没有意义,也不应该这样做。enum LoginConstants {
static let maxAttempts = 10
}
LoginConstants
。我经常看到常量用k
来声明,就像这样:
static let kLoginAttemptsMax = value
thisIsMyConstant
。
Option+Click
的情况下区分常量和变量。UIColor.myColor
而不是UIColor.MyColor()
,包括我。Objective-C
风格的kThisIsMyConstant
。由于许多Swift
开发人员都是objc
专家,对大多数Mac/iOS开发人员来说应该很明显。C
风格的THIS_IS_MY_CONSTANT
。它也被许多其他语言(如Java
)使用。ThisIsMyConstant
的东西。目前我想不起来有哪些语言使用这种风格了(应该有一些,但我只是想不起来),但它与苹果的建议相当接近。编辑:这也取决于您的linting/autoformatting工具。更多想法已添加为注释。
let foo = "bar"
之外,还有更多的选项。例如,对于有限的范围,可以使用 private struct Const
;对于共享常量,甚至可以将常量作为依赖项注入。通过使用这些方法,可以减少使用苹果标准时的缺点。 - superarts.org苹果公司提倡骆驼拼写法(camelCase)。尽管如此,许多人使用下划线加骆驼拼写法(_camelCase),这样做是为了区分它,特别是当您可能具有较低范围的相同名称时。
苹果公司使用驼峰式命名法来展示常量。
我使用更易读的变体。因此,对于您的示例:
let maximumNumberOfLoginAttempts = 10
let MAXIMUM_NUMBER_OF_LOGIN_ATTEMPTS = 10