文字前的快速感叹号

时间:2018-09-26 20:35:21

标签: swift button uinavigationbar optional uibarbuttonitem

我当前正在研究的本教程说,我必须禁用“保存”按钮,直到文本字段中包含一些值为止。 这是代码:

saveButton.isEnabled = !text.isEmpty

text.isEmpty之前的感叹号是否表示启用了保存按钮,否则文本不是空的,与!=等于不等于的方式相同吗? 我知道感叹号表示强制展开,但是我认为您在文本后面加上了感叹号。 顺便说一句(我已经对其进行了测试,并且按照教程中的说明进行了工作)

2 个答案:

答案 0 :(得分:0)

感叹号既是后缀运算符(正如您所说的那样是用力解包运算符),也是前缀运算符。后者是布尔取反,因此当text为空字符串时,text.isEmpty为true,并在给!text.isEmpty为假之前用感叹号对其取反,从而禁用保存按钮。< / p>

答案 1 :(得分:0)

text.isEmpty之前的惊叹号称为Logical NOT运算符,它会反转布尔值。

saveButton.isEnabled = !text.isEmpty

表示如果text为空,则saveButton不启用,反之亦然。

为了更清楚一点,如果我们尝试将其翻译为if语句,则应为:

if text.isEmpty {
    saveButton.isEnabled = false
} else {
   saveButton.isEnabled = true
}