2017-04-04 76 views
0

我遇到了下面的代碼,無法弄清楚到底發生了什麼。我想他們在操場上和能夠操縱輸出,但需要幫助理解的代碼相當於a = b == c是什麼意思在迅速

myButton.isHidden = view.getButtonVisibleState() == false 
+0

這是整個的代碼?沒有,如果塊或類似的包裝它? – paper1111

+5

運算符==優先於=,因此語句最終變爲 - 'myButton.isHidden =(view.getButtonVisibleState()== false)'。看起來你是編程新手。我建議優先考慮先學習。 https://en.wikipedia.org/wiki/Order_of_operations。這不是Swift特有的,這只是一個簡寫。 –

+3

等效於:'myButton.isHidden =!view.getButtonVisibleState()' –

回答

4

賦值運算符(=):它用於賦值給左側變量。

等於運算符(==):它用於比較兩個變量。

所以對於a = b == c意味着

首先比較B & C,如果它們相等,則返回到c否則返回到c。多數民衆贊成在C如何分配的價值。

因此,對於你的問題myButton.isHidden = myView.getButtonVisibleState() == false

你分配值到myButton.isHidden爲真或假。

所以編譯器首先檢查是否myView.getButtonVisibleState()是不可見的,則聲明myView.getButtonVisibleState() == false變得真正和分配myButton.isHidden = true

其他myButton.isHidden = false

2

以僞代碼:

if (view.getButtonVisibleState() == false) then 
myButton.isHidden = true 
else 
myButton.isHidden = false 

您使用測試的布爾值,並分配到直接變量來縮短代碼。

2

我假設你知道分配之間的差額(=)和關係等於==)。

是時候拿出你的運算符優先級表的副本。在將多餘的括號您的發言成爲

myButton.isHidden = (view.getButtonVisibleState() == false)

所以你可以看到它設置myButton.isHiddentrue如果view.getButtonVisibleState()false,反之亦然。

換句話說,它是一個簡單的切換,並

myButton.isHidden = !view.getButtonVisibleState()

可能更清晰。