浅谈我对Optional的理解和拆包
来源:互联网 发布:剑三编辑器骨骼数据 编辑:程序博客网 时间:2024/06/15 16:06
使用swift 开发,会用到String? 和 String 、 Int 和 Int? 、Float 和Float?……,对于官方文档的解锁,“?”所标注的为可选类型。鉴于swif的语言特性,变量在创建之初,就需要知道它的类型,可以是使用“:”标注。例如代码:
var name : String或者是赋值时,值的类型即为该变量的类型,例如代码:
var name = "White Lee"除了以上的数据类型,swift还有一种常用的的类型,即为可选类型,表示该变量值可以为空值,即为:nil。就我个人理解,可选类型不是一个单一的数据类型,它是数据类型的一个拓展,表示该变量可为空值。我们常用的可选类型可以是 基本数据类型,如:
String? Int? Float? Bool?
也可以是任何其他变量的类型:
UITableView?//UI控件 Model?//数据模型 自定义的 ViewController?//控制器
对于可选类型,对变量取值时,我们发现它是被“Optional()”包裹了一层,例如:
var name : String? = "White Lee" var name1 : String = "White Lee" print("name = \(name)") print("name1 = \(name1)")
日志打印结果:
拆包方法:
使用“??”设置如果为空值时的默认值,代码:
print("name = \(name ?? "值为空")")
打印结果:
可以看到,此时“Optional()”被去除。
对于不带带有"?"的非可选类型数据,添加"??",可以看到Xcode会提示去除"??",如下图
现在修改变量name的值,代码:
name = nil print("name = \(name ?? "值为空")")打印结果:
以上为我对于可选类型optional的理解,和我的拆包方法。
如果对于非可选类型变量赋值为nil,代码
var name1 : String = "White Lee" name1 = nil
会提示错误: Nil cannot be assigned to type 'String'
阅读全文
1 0
- 浅谈我对Optional的理解和拆包
- 对swift中的Optional和闭包的理解
- 浅谈对JS闭包的理解
- 浅谈对闭包的理解
- 浅谈对闭包的理解
- 浅谈 “我对 HOOKPE 的理解”
- 浅谈我对框架的理解
- 浅谈我对框架的理解
- 浅谈我对权限管理的理解
- 浅谈我对协程的理解
- 浅谈我对机器学习的理解
- 浅谈我对机器学习的理解
- 浅谈我对JCS 的理解
- 浅谈我对机器学习的理解
- 浅谈我对协程的理解
- 浅谈我对协程的理解
- 浅谈我对机器学习的理解
- 我对Javascript闭包的理解
- 数组去重、冒泡排序、1-100随机产生10个数、字符串中找最多出现的单个字符
- 欢迎使用CSDN-markdown编辑器
- android基础知识
- Python进阶-继承中的MRO与super
- iOS中多个按钮切换选中状态《三步骤》
- 浅谈我对Optional的理解和拆包
- MySQL 5.6 参数之 extra_port
- python3爬取猫眼电影(电影名称和图片)存到本地使用进程池
- nginx入门系列二
- 【Oracle】RAC11gR2 Grid启动顺序及启动故障诊断思路
- shell脚本编写小程序
- Guava官方文档-RateLimiter类详解
- 我的App全栈之路(6)安卓端开发
- android相关信息