从Swift中的特定模块访问操作员

时间:2017-05-01 06:42:26

标签: swift operators

我编写了一个库来使用Swift标准数字类型实现的协议。我还添加了一些运算符,在本例中为<。这是代码:

public func < (lhs: NumberConvertible, rhs: NumberConvertible) -> Bool {
    return lhs.toDouble() < rhs.toDouble()
}
/// Everything that is a number
public protocol NumberConvertible {
    // MARK: - floating points
    func toDouble() -> Double
    func toCGFloat() -> CGFloat
    func toFloat() -> Float

    // MARK: - signed integers
    func toInt8() -> Int8
    func toInt16() -> Int16
    func toInt32() -> Int32
    func toInt64() -> Int64
    func toInt() -> Int

    // MARK: - unsigned integers
    func toUInt8() -> UInt8
    func toUInt16() -> UInt16
    func toUInt32() -> UInt32
    func toUInt64() -> UInt64
    func toUInt() -> UInt

    init(_ number: NumberConvertible)
}

Double实现了NumberConvertible,似乎<调用了自己,NumberConvertible而不是Double。我想在<模块中使用Double的标准Swift运算符。那可能吗?如果需要更多代码,请检查here。我试过了Swift.<,但这给了我一个语法错误。

0 个答案:

没有答案