我遇到了以下代码,无法弄清楚到底发生了什么。我在操场上尝试过它们并能够操作输出但需要帮助来理解代码
myButton.isHidden = view.getButtonVisibleState() == false
答案 0 :(得分:6)
赋值运算符(=):用于将值赋给左侧变量。
等于运算符(==):用于比较两个变量。
因此a = b == c
表示
首先比较b& c,如果它们相等则返回 true ,否则返回 false 到a。这就是a赋值的方式。
因此,对于您的问题myButton.isHidden = myView.getButtonVisibleState() == false
您将myButton.isHidden的值指定为true或false。
因此编译器首先检查myView.getButtonVisibleState()
是否不可见,然后语句myView.getButtonVisibleState() == false
变为 true 并分配myButton.isHidden = true
其他myButton.isHidden = false
答案 1 :(得分:2)
相当于伪代码:
INT_SK_20170405.txt
使用测试的布尔值并直接将其分配给变量以缩短代码。
答案 2 :(得分:2)
我假设您知道分配(=
)与关系相等(==
)之间的区别。
现在是时候拿出运算符优先级表的副本了。在插入多余的括号时,您的语句变为
myButton.isHidden = (view.getButtonVisibleState() == false)
因此,如果myButton.isHidden
为true
,您可以看到它将view.getButtonVisibleState()
设置为false
,反之亦然。
换句话说,它是一个简单的切换,
myButton.isHidden = !view.getButtonVisibleState()
可能更清楚。