2015-09-10 43 views
6

任何人都知道這是什麼不起作用(靜態成員Min不能在類型CGFloat的實例中使用。在擴展。爲什麼max在Swift的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) 

回答

12

你能得到這個工作通過指定Swift.min和Swift.max這樣:

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

只使用最小值和最大值時,它是不確定的,如果你的意思是CGFloat.min或Swift.min

相關問題