那么如何在Swift中定义泛型类常量呢?
对于“普通”类,可以这样定义它们:
class C {
static let k = 1
}
let a = C.k // 1
但是,如果对泛型类执行相同的操作:
class C<T> {
static let k = 1
}
您在编译时收到以下错误:
通用类型尚不支持静态存储的属性
那么如何解决呢?
现在,我正struct
用来解决此问题:
struct CConstant {
static let K = 1
}
这没有在泛型类的范围内定义,但对我有用。您有更好的解决方案吗?
-
ps:这是我的第一个问题,因此,如果您认为有必要,请帮助我改善此问题=)
您可以在定义通用类的同一文件中使用fileprivate
或private
访问级别定义全局常量.swift
。因此,它将在此文件外部不可见,也不会污染全局(模块)名称空间。
如果您需要从当前文件外部访问此常量,则将其声明为internal
(默认访问级别)或public
命名为,ClassConstant
这样很显然它与关联Class
。
阅读更多有关Swift 3中访问级别的信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句