如何在表达式中处理四个=符号

时间:2014-04-22 16:23:54

标签: ios objective-c properties equation

我正在查看新代码库中的一些代码,而且我遇到过这条线,我很难处理:

self.button1.hidden = self.button2.hidden = self.button3.hidden = self.button4.hidden = NO;

这对我来说根本不易读。这是说如果所有其他按钮都不被隐藏,应该隐藏button1吗?

3 个答案:

答案 0 :(得分:1)

尝试将其分解为:

self.button4.hidden = NO;

self.button3.hidden = self.button4.hidden; // We just set self.button4.hidden to NO, so this passes that value to self.button3.hidden

self.button2.hidden = self.button3.hidden;

self.button1.hidden = self.button2.hidden;

它只是以聪明的方式将它们全部设置为NO

答案 1 :(得分:1)

不,你应该从右边开始阅读。 Button4.hidden设置为NO,然后button3.hidden设置为NO,然后button2.hidden设置为NO,然后button1.hidden设置为NO。

最后,这只是将所有按钮的隐藏属性设置为NO的奇怪方法。

答案 2 :(得分:1)

他们将按此顺序分配:

self.button4.hidden = NO;
self.button3.hidden = self.button4.hidden;
self.button2.hidden = self.button3.hidden;
self.button1.hidden = self.button2.hidden;

这是赋值运算符Type& operator=(const Type& other)返回对自身的引用的一个很好的理由,因此这些赋值可以链接在一起。