swift 中的 感叹号 问号 和 双问号用法详解
2016-07-18 10:03
405 查看
首先介绍一下swift 中的 Optional!
点到 Optional 的头文件可以看到, Optional 其实是个enum,里面有 case None 和 case Some(Wrapped)两种类型。其实所谓None 就是 nil, Some 就是 非nil, 是要进行包装的.这也是使用Optional的时候要拆包(从enum里取出来原始值)的原因!
一般 ‘?’ 含有 可选,试试,的意思,有可以选择的余地, 而 ‘!’ 含有的是 强制 的意思
‘?’ 的使用
当想要声明一个 Optional 的变量或者常量时,只需要在数据类型后面 加上 ‘?’ 即可
声明为 Optional 的变量默认值是 nil,而常量是没有默认值的,主要用于在构造函数中给常量设置初始数值
2.Optional 解包
Optional 只有在解包后不为 nil 才可以参与运算.
1) 强制解包
用 ‘!’ 进行解包,即强行解包. 一般只有在保证变量或者常量 有值(不为 nil)的时候才可以进行强行解包.若为 nil,强行解包,会报错
3.运算符 ??
‘??’ 运算符可以用于判断 变量/常量 的数值是否是 nil.不为 nil ,则取变量或者常量本身的值,如果是 nil 则使用后面的值替代
点到 Optional 的头文件可以看到, Optional 其实是个enum,里面有 case None 和 case Some(Wrapped)两种类型。其实所谓None 就是 nil, Some 就是 非nil, 是要进行包装的.这也是使用Optional的时候要拆包(从enum里取出来原始值)的原因!
一般 ‘?’ 含有 可选,试试,的意思,有可以选择的余地, 而 ‘!’ 含有的是 强制 的意思
‘?’ 的使用
当想要声明一个 Optional 的变量或者常量时,只需要在数据类型后面 加上 ‘?’ 即可
// 名字 var name: String?
声明为 Optional 的变量默认值是 nil,而常量是没有默认值的,主要用于在构造函数中给常量设置初始数值
2.Optional 解包
Optional 只有在解包后不为 nil 才可以参与运算.
1) 强制解包
用 ‘!’ 进行解包,即强行解包. 一般只有在保证变量或者常量 有值(不为 nil)的时候才可以进行强行解包.若为 nil,强行解包,会报错
var a: Int? let b = 4 print(a! + b)
3.运算符 ??
‘??’ 运算符可以用于判断 变量/常量 的数值是否是 nil.不为 nil ,则取变量或者常量本身的值,如果是 nil 则使用后面的值替代
var a: Int? let b = 4 print((a ?? 0) + b)
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- Swift实现Selection Sort选择排序算法的实例讲解
- 简单分析Swift语言的一些基本特征
- 使用 Swift 语言编写 Android 应用入门
- 理解二叉堆数据结构及Swift的堆排序算法实现示例
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- Swift实现iOS应用中短信验证码倒计时功能的实例分享
- 使用Swift代码实现iOS手势解锁、指纹解锁实例详解
- 探讨Swift数组和字典
- Swift中的指针操作和使用详细介绍
- 详解Swift中的数据类型类型转换