原创文章,欢迎转载。转载请注明:关东升的博客
可选类型:
我们先看看如下代码:
var n1: Int = 10 n1 = nil //编译错误 let str: String = nil //编译错误
Int和String类型不能接受nil的,但程序运行过程中有时被复制给nil是在所难免的,Swift为每一种数据类型提供一种可选类型(optional),即在某个数据类型后面加上问号(?)或感叹号(!),修改前文示例代码:
var n1: Int? = 10 n1 = nil let str: String! = nil
Int?和String!都是原有类型Int和String可选类型,它们可以接受nil。
可选类型值拆包
在可选类型的问号(?)或感叹号(!)究竟有什么区别呢?这与可选类型的“拆包”(unwrapping)有关,拆包是将可选类型变成普通类型,如果我们直接打印非空的可选类型值,代码如下:
var n1: Int? = 10 print(n1)
输出的结果是Optional(10),而非10。所以试图计算表达式n1 + 100会发生编译错误,代码如下:
var n1: Int? = 10 print(n1 + 100) //发生编译错误
需要对可选类型值进行“拆包”是必要地。
“拆包”分为显示拆包和隐性拆包。
使用问号(?)声明的可选类型,在拆包时需要使用感叹号(!),这种拆包方式称为“显式拆包”;
使用感叹号(!)声明的可选类型,在拆包时可以不使用感叹号(!),这种表示方式称为“隐式拆包”。
看看下面代码:
var n1: Int? = 10 print(n1! + 100) //显式拆包 var n2: Int! = 100 print(n2 + 200) //隐式拆包
相关推荐
从零开始学swift,图灵原创,关东升著。基于swift2.x。2016年3月版
最新的关于学习swift开发的书籍,讲的非常好
Swift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习...
以下是从零开始学习SwiftUI的一些建议: 了解Swift语言基础:SwiftUI是用Swift语言编写的,因此了解Swift语言的基础知识是非常重要的。你可以从苹果官方文档、在线教程或书籍中学习Swift语言。 学习SwiftUI基本概念...
精选Swift相关的学习笔记与资料集合打包上传给大家,这里的笔记非常的容易看得懂,基本上学习编程的看这一堆东西就能很快上上手了,非常的实用。
Swift学习的笔记,总结性的东西,很实用,非常适合新手看,之前学过OC的朋友基本上一看就能上手,非常的实用。
Swift教程:Swift基础 可选类型(optional)1-拆包和绑定
swift 学习笔记 之 扩展
学习swift的笔记,自己记录的,必须50字,凑够了算,谢谢
NULL 博文链接:https://duchengjiu.iteye.com/blog/2184242
贝塞尔曲线使用——模拟心跳曲线
IOS开发-Swift-基础知识学习笔记
swift 学习笔记 之 函数 编程题
ios开发 swift语言学习资料,入门学习,简单易懂;ios开发 swift语言学习资料,入门学习,简单易懂
学习swift的笔记,部分代码来自教程。打包的playground方便学习和查看效果。
目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常...
Swift学习笔记 更新日志 学习资料 《The Swift Programming Language》中文版
Swift从入门到精通视频教程下载第6章 Swift集合类型——数组和字典.zip
Swift学习资料
Swift 学习资料.zip,在Playgrounds上编写的Apple Swift语言摘要