【问题标题】:Why does max doesn't work in CGFloat extension in Swift?为什么 max 在 Swift 的 CGFloat 扩展中不起作用?
【发布时间】:2015-09-10 16:34:50
【问题描述】:

任何人都知道这不起作用(静态成员 min 不能用于扩展中的 Type CGFloat. 实例。

extension CGFloat {
    mutating func normalize() {
        self = min(max(CGFloat(0), self), CGFloat(1))
   }
}

虽然这有效

let f: CGFloat = CGFloat(0.4)
let maxValue = max(f, 1)

【问题讨论】:

    标签: swift swift2


    【解决方案1】:

    您可以通过指定 Swift.min 和 Swift.max 来实现此功能:

    extension CGFloat {
        mutating func normalize() {
            self = Swift.min( Swift.max(CGFloat(0), self), CGFloat(1))
        }
    }
    

    仅使用 min 和 max 时,不确定您是指 CGFloat.min 还是 Swift.min

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2019-07-25
      相关资源
      最近更新 更多