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
- Swift教程之可选类型【问号的用法】
- swift 之可选类型
- swift之可选类型
- swift中的可选类型Optional?、解包!和隐式解包的可选类型的用法
- Swift中的可选类型(Optional)以及?和!的用法详解
- Swift可选类型的使用
- Swift:可选类型的含义
- Swift学习之可选类型Optional
- Object-C--->Swift之(二)可选类型
- swift 可选类型的解包
- Swift学习 隐式解包的可选类型
- swift中的可选类型的实现原理
- swift变量的可选(Optional)类型
- swift_010(Swift 的可选类型)
- Swift学习记录(Swift和Object-C混编之可选值类型的选择)
- 学校学习ios教程笔记,第二节Swift的常量,变量,可选类型控制流
- ios教程笔记,第二节 Swift的常量,变量,可选类型控制流
- swift语言-可选类型
- 研究了一下关于c/c++编译器关于导出函数的不同处理
- c语言 DEBUG 日志打印
- iOS版本号
- 定义Activity切换时的动画效果
- LeetCode Course Schedule II
- Swift教程之可选类型【问号的用法】
- java--异常及异常的处理机制
- "黑马程序员"java集合框架(1)
- php后台修改,前台没变
- java--内部类的总结
- Object转换为JSON格式字符串
- Android Studio将module打包成.jar包
- Caffe 安装错误记录及解决办法
- android Tabhost部件(四)--其他类似TabHost实现