如何在通用类中快速定义静态常量?

加西

那么如何在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:这是我的第一个问题,因此,如果您认为有必要,请帮助我改善此问题=)

Mixel

您可以在定义通用类的同一文件中使用fileprivateprivate访问级别定义全局常量.swift因此,它将在此文件外部不可见,也不会污染全局(模块)名称空间。

如果您需要从当前文件外部访问此常量,则将其声明为internal(默认访问级别)或public命名为,ClassConstant这样很显然它与关联Class

阅读更多有关Swift 3中访问级别的信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章