温馨提示:本文最后更新于
2024-08-23 10:35:49
,某些文章具有时效性,若有错误或已失效,请在下方留言。spaceship operator <=>
(太空操作符)
- 它是二目运算符,并非三目运算符。
- 进行三向比较,
>
、=
、<
。
常见的运算符分为前缀(prefix)运算符
、中缀(infix)运算符
、后缀(postfix)运算符
。此处的太空运算符(<=>
)为中缀运算符。
// MARK: - 定义运算符
infix operator <=>
/// 太空运算符函数的实现
/// - lhs: 操作符左侧参数
/// - rhs: 操作符右侧参数
func <=><T: Comparable>(lhs: T, rhs: T) -> Int {
if lhs < rhs { return -1 }
if lhs > rhs { return 1 }
return 0
}
/// 使用 ComparisonResult 枚举
func <=><T: Comparable>(lhs: T, rhs: T) -> ComparisonResult {
if lhs < rhs { return .orderedAscending }
if lhs > rhs { return .orderedDescending }
return .orderedSame
}
let left = 5
let right = 7
let result: Int = left <=> right
print(result) // -1
let result1: ComparisonResult = left <=> right
print(result1.rawValue) // -1
参考
- 文章来自: Hacking With Swift Plus ↩
© 版权声明
THE END
暂无评论内容