我正在查看新代码库中的一些代码,而且我遇到过这条线,我很难处理:
self.button1.hidden = self.button2.hidden = self.button3.hidden = self.button4.hidden = NO;
这对我来说根本不易读。这是说如果所有其他按钮都不被隐藏,应该隐藏button1吗?
答案 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)
返回对自身的引用的一个很好的理由,因此这些赋值可以链接在一起。