ios - 在数字前面加一个 + 号有什么作用?

标签 ios objective-c operators

我刚刚查看了某人的代码,我看到了一些我以前从未见过的东西:

CGSizeMake(+(rect.size.width*0.3f), +(rect.size.height*0.3f));

这似乎是一个愚蠢的问题,但我以前从未见过有人这样做过。这是否只是确保该值为正数?像 - 确保否定性?

最佳答案

他们什么都不做。他们不确保积极。他们是多余的。这是一些代码和相应的输出:

CGRect rect = CGRectMake(0, 10, 20, 20);
CGSize boo = CGSizeMake(+(rect.size.width*0.3f), +(rect.size.height*0.3f));
NSLog(@"Boo+ is %f, %f", boo.width, boo.height);

rect = CGRectMake(0, 10, -20, -20);
boo = CGSizeMake(+(rect.size.width*0.3f), +(rect.size.height*0.3f));
NSLog(@"Boo is %f, %f", boo.width, boo.height);


rect = CGRectMake(0, 10, 20, 20);
CGSize hoo = CGSizeMake((rect.size.width*0.3f), (rect.size.height*0.3f));
NSLog(@"Hoo+ is %f, %f", hoo.width, hoo.height);

rect = CGRectMake(0, 10, -20, -20);
hoo = CGSizeMake((rect.size.width*0.3f), (rect.size.height*0.3f));
NSLog(@"Hoo is %f, %f", hoo.width, hoo.height);

输出:

2013-12-30 23:16:08.446 RAACTutor[7730:1c103] Boo+ is 6.000000, 6.000000
2013-12-30 23:16:08.449 RAACTutor[7730:1c103] Boo is -6.000000, -6.000000
2013-12-30 23:16:08.451 RAACTutor[7730:1c103] Hoo+ is 6.000000, 6.000000
2013-12-30 23:16:08.452 RAACTutor[7730:1c103] Hoo is -6.000000, -6.000000

如您所见,它完全没有影响。它很可能是该 CGSizeMake 先前化身中一些更广泛计算的遗留物。

关于ios - 在数字前面加一个 + 号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852468/

相关文章:

c++ - 使用迭代器访问结构元素

java - 为什么条件运算符在 java switch case 中不起作用?

ios - 如何使用 SWIFT3 解析此 JSON

iphone - 将指针设置为 nil,objective-c

objective-c - 如何修复 "bad receiver type"错误

objective-c - calloutAccessoryControlTabbed 委托(delegate)未被调用

objective-c - 如何测试两个 CLLocations 的相等性

C 操作顺序?

ios - 下载 iOS 推特工具包

ios - 如何在 Swift 3 + Optional + NSOrderedSet + Generic 中优雅地使用 Core Data