在比较Swift中的字符串时,可以将非可选字符串与可选字符串进行比较.
像这样(文本是可选的,它是空的):
UITextField.text == "" // True
Run Code Online (Sandbox Code Playgroud)
是因为平等运算符单独解开字符串吗?
Sul*_*han 18
对于每种Equatable类型,==操作也定义为可选项:
public func ==<T : Equatable>(lhs: T?, rhs: T?) -> Bool
Run Code Online (Sandbox Code Playgroud)
右侧的非可选项会自动提升为可选项.
当两个值都是或者如果它们都是非零并且它们相等时,==for选项会返回.truenil
您的理论在以下示例中不成立:
\n\nlet x: String? = nil\n\nif x == "" {\n print("True")\n} else {\n print("False") //Printed\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这里实际发生的情况是,该text属性实际上从未在初始化时实际发生过,而是一个空字符串,如文档nil所示:
\n\n\n该字符串默认为@""。
\n
Swift 编译器不会隐式解包任何选项,而是将责任留给程序员。
\n| 归档时间: |
|
| 查看次数: |
4973 次 |
| 最近记录: |