"运算符是否有替代方案?-6ren"> "运算符是否有替代方案?-我正在实现一些自定义 NSArray 排序选择器,我想知道 C/Objective-C 中是否有类似 运算符的东西? 我有这个: if (self.count == otherObject.coun-6ren">
gpt4 book ai didi

objective-c - C/Objective-C 中的 Perl 中的 "<=>"运算符是否有替代方案?

转载 作者:行者123 更新时间:2023-12-03 06:15:47 25 4
gpt4 key购买 nike

我正在实现一些自定义 NSArray 排序选择器,我想知道 C/Objective-C 中是否有类似 <=> 运算符的东西?

我有这个:

if (self.count == otherObject.count) return 0;
return (self.count > otherObject.count)? 1 : -1;

并且希望拥有(如 Perl 中的那样)

return self.count <=> otherObject.count;

最佳答案

也许 compare: 方法就是您正在寻找的方法? NSStringNSNumber 等实现它。 Cocoa 中所有类似比较的方法都会返回 NSComparisonResult:

enum {
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

所以你可以直接使用返回的整数值。假设您问题中的 count 是一个 NSNumber 您可以执行以下操作:

return [self.count compare:otherObject.count];

如果您的情况仅限于数字并且您只想使用运算符,您可能可以使用旧的减号。但要注意整数溢出!:

return self.count - otherObject.count;

关于objective-c - C/Objective-C 中的 Perl 中的 "<=>"运算符是否有替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com