swift-基础07-if语句,强制解析与可选绑定和nil
来源:互联网 发布:msbs步枪 知乎 编辑:程序博客网 时间:2024/06/01 21:27
let number = "123"
// let number = "hello"
let convertNumerber = Int(number)
if (convertNumerber != nil) {
print("convertNumber is\(convertNumerber!)")
} else {
print("convertNumber is\(convertNumerber)" )
}
如果你确定可选包含一个值,你可以在名称后面加惊叹号 !访问可选的值。
惊叹号 !表示:“ 这个可选有值,请使用它。”
使用!表示把这个可变类型‘降级’为不可变类型
这就是所谓的 强制解析(forced unwrapping)可选的值
也叫拆包
可空类型的精度(取值范围)大于不可控类型,所以拆包又叫强制解析
如果用 !来获取一个可选值可能会导致运行时错误。所以,
使用 !来强制解析值之前,一定要确定可选包含一个非 nil的值(if判断一下)
可选绑定(optional binding)用来判断可选是否包含值,
如果包含就把值赋给一个临时常量或者变量。
可选绑定一般用在 if和 while 语句中,
对可选的值进行判断并把值赋给一个常量或者变量,例子如下
// let number1 = "123"
let number1 = "hello"
if let convertNumerber1 =Int(number1) {
print("convertNumber1 is\(convertNumerber1)")
} else {
print("convertNumber1 is nil ")
}
以上代码表示:“如果 Int(number1)返回的可选 Int 包含一个值,
创建常量 convertNumerber1,并将可选包含的值赋给它。”
如果转换成功,convertNumerber1常量可以在 if 语句的第一个分支中使用。
convertNumerber1已经被初始化,所以不需要再使用 !获取它的值。
在这个例子中,convertNumerber1用来输出转换结果。
你可以在可选绑定中使用常量和变量。
通过给可选的变量赋值给nil来表示他们没有值
var serverResponseCode :Int? =404
print(serverResponseCode)
serverResponseCode = nil
print(serverResponseCode)
var myBananaCount:Int?
print(myBananaCount)
var myAppleCount = 3
myAppleCount = nil
但是nil不能用于非可选的常量或者变量。
如果代码中有常量或者变量需要处理值缺失的情况,把他们声明称对应的可选类型
如果一个可选的常量或者变量没有提供默认值,他们会被自动设置为nil
Swift 的 nil和 Objective-C的 nil 并不一样。
在 Objective-C中,nil 是一个指向不存在对象的指针
在 Swift中,nil 不是指针,它是一个确定的值,用来表示值的缺失。
任何类型的可选都可以被设置为 nil,不只是对象类型。
- swift-基础07-if语句,强制解析与可选绑定和nil
- swift语言中的三个知识点(可选类型、可选绑定、nil)
- 可选类型(?)与强制解析运算符(!)
- if语句和clog中的nil
- Swift可选绑定、断言
- swift的可选绑定
- swift 可选绑定
- Swift中的可选类型Optional与if let 语法
- Swift基础 可选
- Swift 可选类型 ?和!
- Swift基础(九)id兼容性与nil对象
- swift-基础06-元组和Optionals(可选)
- swift-基础08-隐式解析,隐式装包,强制装包和断言
- swift学习笔记之可选值和隐式可选解析
- Swift-可选类型和可选链
- 1.7 Swift可选值, 隐式解析可选 swift 中的? !
- Swift-可能值1-可选绑定-可选链
- Swift-if语句
- 【郑轻】[1764]BMI
- 《C语言及程序设计》第十一讲实践项目
- 类
- 服务---Service
- 观察者模式 - 通知/KVO
- swift-基础07-if语句,强制解析与可选绑定和nil
- jacob调用word方法
- 外网主机与内网主机通信 路由端口映射
- linux之sed命令详解
- Myeclipse配置maven
- 反射和类加载器
- 博客搬家通知
- 自动AC机
- linux中宿主目录、Vi和Vim关系