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

时间:2013-12-31 05:51:48

标签: ios objective-c operators

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

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

似乎是一个愚蠢的问题,但我以前从未见过它。这只是确保价值是正的吗?像-一样确保消极性?

2 个答案:

答案 0 :(得分: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);

输出:

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先前版本中更广泛计算的遗留物。

答案 1 :(得分:4)

它是一个带有正确符号的数学。它只是澄清括号内的数学乘积是正的(或假定为正数)。

因此,如果我看一下这段代码,我知道乘法的乘积是正的。

查看http://jsfiddle.net/eNXLW/

我刚刚在javascript中写了一个警告声明。

alert(+4 * +5);

通常我们写它就像,

alert(4*5);

同样,程序员告诉其他程序员最终结果是积极的。