对swift中的Optional和闭包的理解

本文详细介绍了Swift中的Optional类型,包括其可选性、安全性和如何进行判空操作,如强制解析和可选绑定。同时,文章还探讨了闭包的概念,将其与Objective-C的block进行对比,并讲解了闭包的格式、参数与返回值,以及闭包作为可选类型的用法。
摘要由CSDN通过智能技术生成

一,Optional

在swift中Optional是可选类型,代表可有可无,当我们看到一个方法或者数据类型后面有?时,就代表返回的是一个可选类型。直接打印可选类型会被Optional包裹,在后面加一个!就代表一定有值,而且将其强制解析,去掉Optional包裹。


这样做的目的其实就是安全起见,因为swift是一种安全的非常语言。所以我们在使用前一般都会做判空操作

eg:   if  url  != nil  {

       let request  =  NSURLRequest( URL: url ! )

      }

另外一种就是可选绑定

eg:   if  let urlFinal = url {

       let request  =  NSURLRequest( URL: urlFinal )

      }

以上方法就是先将url中的值取出来赋值给urlFinal ,然后判断是否为空,不为空就进入{    }  里面执行代码。因为在swift中条件语句的值只能是Bool,取值只能为ture/false

二,闭包

在swift中闭包其实就是OC中的block

格式为  {   ()-> () in 

               ....

            }

第一个 ()为形参,第二个 ()为返回值,in是用于区分返回值和执行代码,如果闭包没有参数和返回值,那么in和in之前的东西都可以删除

定义一个闭包:

var  finished: () -> ()?     //这种写法是错误的,因为他代表的是返回值为可选类型

var  finished:( () -> () )?  //正确,代表闭包为可选类型


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值