struct Size: Equatable, Comparable, CustomStringConvertible { // 相等的协议
var width: Double
var height: Double
var description: String {
return "witth:" + "\(self.width)" + " " + "height" + "\(self.height)"
}
}
// 相等协议的实现
func ==(left: Size, right: Size) -> Bool {
return left.height == right.height && left.width == right.height
}
// 比较协议的实现
func <(left: Size, right: Size) ->Bool {
if left.width * left.height != right.height * right.width {
return left.width * left.height < right.height * right.width
}
return left.width * left.height > right.height * right.width
}
扩展协议
protocol student:CustomStringConvertible {
var name: String{get}
var height: Double {get}
}
// 扩展协议,在协议扩展中可以