ma1*_*w28 58 global constants naming-conventions swift
在Swift中,似乎全局常量应该是camelCase.
例如:
let maximumNumberOfLoginAttempts = 10
Run Code Online (Sandbox Code Playgroud)
那是对的吗?
我已经习惯了所有的大写字母,例如,MAXIMUM_NUMBER_OF_LOGIN_ATTEMPTS来自C,但我想默认Swift惯例.
bmj*_*hns 66
Swift 3 API指南声明"类型和协议的名称是UpperCamelCase.其他所有内容都是lowerCamelCase".
https://swift.org/documentation/api-design-guidelines/
理想情况下,您的全局常量将位于某种类型的结构中,即UpperCamelCase,该结构中的所有属性都是lowerCamelCase
struct LoginConstants {
static let maxAttempts = 10
}
Run Code Online (Sandbox Code Playgroud)
像这样访问,
if attempts > LoginConstants.maxAttempts { ...}
Run Code Online (Sandbox Code Playgroud)
Gre*_*own 24
我一直在讨论使用驼峰式案例,它具有类级常量的主要资本.例如:
static let MaximumNumberOfLoginAttempts = 10
Run Code Online (Sandbox Code Playgroud)
它仍然是驼峰式的(正如Apple似乎推荐的那样),但大写的主要角色清楚地表明价值是不可改变的.
为了改进bmjohns 的答案,最好使用 anenum而不是 a 来struct充当常量的命名空间。没有 case 的anenum无法实例化,而 a 则struct可以。如果它是 a struct,则LoginConstants()允许实例化它(通过 ),但这没有意义,也没有意义。
约定是使用枚举来命名空间,如下所示:
enum LoginConstants {
static let maxAttempts = 10
}
Run Code Online (Sandbox Code Playgroud)
这确保了唯一有效的用法LoginConstants是访问其静态成员。
我经常看到用a声明的常量k,如下所示:
static let kLoginAttemptsMax = value
Run Code Online (Sandbox Code Playgroud)
这也跟随骆驼套管到"T".
有几个选择。
thisIsMyConstant.
Option+Click.UIColor.myColor而不是方式,包括我。UIColor.MyColor()Objective-C风格kThisIsMyConstant。由于许多Swift开发人员都是objc专家,因此对于大多数 Mac/iOS 开发人员来说这应该是非常明显的。C风格THIS_IS_MY_CONSTANT。许多其他语言也使用它,例如Java.ThisIsMyConstant。我现在想不出任何语言使用这种风格(应该有一些,但我只是不记得了),但它有点接近苹果的建议。编辑:这还取决于您的 linting/自动格式化工具。更多的想法被添加为评论。
| 归档时间: |
|
| 查看次数: |
21058 次 |
| 最近记录: |