为什么我不能扩展IntegerType?

问题描述 投票:0回答:1

在整个网络上,包括此处,我看到了一个迅速扩展协议IntegerType(此处文档:IntegerType)的示例,就像这样...

import Foundation

extension IntegerType {

    var bla:Bool{
        return true
    }
}

但是,以上内容对我来说并不编译,并给我以下错误:

使用未声明的类型'IntegerType'

我也尝试过以下方法,但没有运气...

extension Numeric where Self == IntegerType {

    var bla:Bool{
        return true
    }
}

extension Numeric where Self:IntegerType {

    var bla:Bool{
        return true
    }
}

extension Numeric where self is IntegerType {

    var bla:Bool{
        return true
    }
}

知道为什么吗?

swift extension-methods
1个回答
0
投票
这只是通用名称,因为有很多整数类型,例如IntUint

您可以扩展特定类型

extension Int { var bla:Bool{ return true } }

或协议

extension SignedInteger { var bla:Bool{ return self >= 0 ? true : false } }


0
投票
Aaaah。从Swift 3.0开始似乎已弃用。从文档的完整链接中了解了这一点...

https://swiftdoc.org/v2.2/protocol/integertype

3.0以后似乎不存在

© www.soinside.com 2019 - 2024. All rights reserved.