Swift教程之可选类型【问号的用法】

来源:互联网 发布:成都程序员工资一般多少 编辑:程序博客网 时间:2024/05/20 10:11
//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  //要么存在,且值为404serverResponseCode = 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的三元运算符]*/

0 0
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩发烧37.2度怎么办 宝宝37.5不退热怎么办 三个半月宝宝发烧怎么办 婴儿发烧37.4度怎么办 小孩发烧37.4度怎么办 20天新生儿低烧怎么办 四个月婴儿低烧怎么办 宝宝追听不好怎么办 2个多月宝宝不追听怎么办 宝宝拒吃奶粉怎么办 婴儿被吓到了怎么办 婴儿脊柱侧弯怎么办 母乳脂肪含量高怎么办 混合喂养宝宝拉肚子怎么办 混合喂养不吃奶粉怎么办 混合喂养宝宝便秘怎么办 混合喂养不吃奶瓶怎么办 混合喂养厌奶粉怎么办 气血虚奶水少怎么办 产后奶水不足怎么办啊 婴儿吐奶瓣和水怎么办 一岁半宝宝频繁喝夜奶怎么办 婴儿腹泻不吃奶怎么办 八个月宝宝脱水怎么办 宝宝呕吐脱水了怎么办 宝宝腹泻没精神怎么办 小孩拉稀没精神怎么办 宝宝拉稀脱水了怎么办 宝宝发烧还拉肚子怎么办 宝宝发烧后腹泻怎么办 吃海鲜拉肚子了怎么办 孕妇吃海鲜腹泻怎么办 稀饭煮焦了怎么办 8月宝宝拉肚子怎么办 满月宝宝38度怎么办 未满月婴儿拉稀怎么办 未满月宝宝拉稀怎么办 满月的宝宝拉稀怎么办 十个月小孩拉肚子怎么办 十个月宝宝脱水怎么办 宝宝拉肚子老不好怎么办