a = b == c是什么意思在迅速

问题描述:

我遇到了下面的代码,无法弄清楚到底发生了什么。我想他们在操场上和能够操纵输出,但需要帮助理解的代码相当于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()' –

赋值运算符(=):它用于赋值给左侧变量。

等于运算符(==):它用于比较两个变量。

所以对于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

以伪代码:

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

您使用测试的布尔值,并分配到直接变量来缩短代码。

我假设你知道分配之间的差额(=)和关系等于==)。

是时候拿出你的运算符优先级表的副本。在将多余的括号您的发言成为

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

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

换句话说,它是一个简单的切换,并

myButton.isHidden = !view.getButtonVisibleState()

可能更清晰。