我当前正在研究的本教程说,我必须禁用“保存”按钮,直到文本字段中包含一些值为止。 这是代码:
saveButton.isEnabled = !text.isEmpty
text.isEmpty之前的感叹号是否表示启用了保存按钮,否则文本不是空的,与!=等于不等于的方式相同吗? 我知道感叹号表示强制展开,但是我认为您在文本后面加上了感叹号。 顺便说一句(我已经对其进行了测试,并且按照教程中的说明进行了工作)
答案 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
}