if语句和optional

因为当这个if和optional一起用的时候,很容易混淆,这里题主好好做一个详细的解释。

强制解包

在可选类型的后面加个感叹号!,就可以把可选类型的值取出来,赋值给具体类型
下面的写法是正确的

var num :Int? =10
var numValue :Int =num!
// 将num中的值取出来,赋值给numValue

感叹号!的意思是告诉编译器:我确定可选类型里面有值,可以将值取出来了。当然啦,如果为nil,就崩溃咯。

隐式解包

被声明为隐式解包的可选类型不用进行强制解包能够自动解包:自动把可选类型的值取出来赋给具体类型

  • 如何声明一个隐式解包的可选类型
    将 问号?改为 感叹号!即可
var num :Int! =20
var numValue :Int =num // 自动解包,不用再使用! 进行强制解包
// num是被声明为隐式解包的可选类型Int!
  • 隐式解包的原理和应用
    隐式解包的原理
    相当于告诉编译器:这个可选类型的值一直都存在,绝对能取出里面的值
    所以取值时可以不用加感叹号!,能够自动解包

选择绑定

  • 选择绑定的作用
    用来确定一个可选类型的值是否存在
    如果值存在,把该值赋给一个临时常量\变量
    如果值不存在,就不创建任何临时常量\变量
  • 选择绑定的应用
if let num ="156".toInt() {
    println("num的值存在,是\(num)")
} else {
   println("num的值不存在")
}

如果"156".toInt()的值存在
就把值赋给临时常量num,执行第1 ~ 3行的大括号之间的代码
如果"156".toInt()的值不存在
就不创建临时常量num,执行第3 ~ 5行的大括号之间的代码
注意:
这里的num是Int类型,不是Int?类型
num的作用域是第13行的大括号之间,不能用在第35行的大括号之间

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift基本语法 简介1.什么是SwiftSwift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语...
    small_Sun阅读 550评论 0 0
  • 前言 Swift是一门新的适用于iOS,macOS,watchOS,tvOS开发的编程语言。尽管如此,Swift的...
    BoomLee阅读 1,945评论 0 4
  • 01-常量与变量 学习swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔阅读 5,382评论 2 19
  • Hello Word 在屏幕上打印“Hello, world”,可以用一行代码实现: 你不需要为了输入输出或者字符...
    restkuan阅读 3,369评论 0 6
  • 小月十六了,白水村里的姑娘十六就该嫁人了,小月的爹妈也张罗着要给小月寻个好人家。 白水村有秀水,有良田,光景...
    小凯兔你阅读 745评论 0 2

友情链接更多精彩内容