对swift中的Optional和闭包的理解

一,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:( () -> () )?  //正确,代表闭包为可选类型


猜你喜欢

转载自blog.csdn.net/darrenzzb66/article/details/52097944
今日推荐