Swift教程之可选类型【问号的用法】
发布时间:2020-12-14 02:02:37 所属栏目:百科 来源:网络整理
导读://MARK:-----------可选类型?的用法------------/*-------------------------------------------------------------可选类型(变量名: 类型?)这个值要么存在,并且等于x,要么根本不存在。可选类型类似于Objective-C中指针的nil值,但是nil只对类(class)有
//MARK:-----------可选类型?的用法------------ /* ------------------------------------------------------------- 可选类型(变量名: 类型?) 这个值要么存在,并且等于x,要么根本不存在。 可选类型类似于Objective-C中指针的nil值,但是nil只对类(class)有用,指对象不存在,而Swift 的 nil 不是指针,它代表特定类型的值不存在。任何类型的可选类型都能赋值为 nil,而不仅限于对象类型。并且更安全。 */ let num = "123" //由于toInt方法可能会失败,因此它会返回一个可选的Int类型,而不同于Int类型。一个可选的Int类型被记为Int?,不是Int。问号表明它的值是可选的,可能返回的是一个Int,或者返回的值不存在。 let convertedNumber:Int? = Int(num)// convertedNumber is inferred to be of type "Int?",or "optional Int" var serverResponseCode: Int? = 404 //要么存在,且值为404 serverResponseCode = nil //要么不存在。要将可选变量设为值不存在的状态,可以给它赋特殊值 nil /*nil 不能用于非可选量。 如果代码中的常量或变量需要适配值不存在的特殊情况,务必将它声明为恰当的可选类型。 如果定义的可选量时不提供默认值,该常量或变量将自动设为 nil */ //var strValue = nil //错误 var strValue : String? //判断一个Optional的值是否有值,可以用if来判断 if (strValue != nil) { //do sth with strValue } /* 使用Optional值 在使用Optional值的时候需要在具体的操作,比如调用方法、属性、下标索引等前面需要加上一个? 问号的意思是询问是否响应后面这个方法,和原来的isResponseToSelector有些类似 */ let hashValue = strValue?.hashValue //strValue是Optional的字符串,如果strValue是nil,则hashValue也为nil,如果strValue不为nil,hashValue就是strValue字符串的哈希值 //let hashValue = strValue.hashValue //错误。对于Optional值,不能直接进行操作 print("hashValue is (hashValue)") /*总结 ? 使用场景 声明Optional值变量 用在对Optional值操作中,用来判断是否能响应后面的操作[判断是否是nil的三元运算符] */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |