在数字前面加上+号是做什么的?

Liz*_*zza 0 objective-c operators ios

我只是勉强看着别人的代码而且我看到了以前没见过的东西:

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

看起来像一个愚蠢的问题,但我以前从未见过它.这只是确保价值是正的吗?喜欢-确保消极性?

Hal*_*alR 5

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

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);
Run Code Online (Sandbox Code Playgroud)

输出:

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
Run Code Online (Sandbox Code Playgroud)

如您所见,它根本没有任何影响.它很可能是CGSizeMake之前版本中更广泛计算的遗留物.