美文网首页
swift解包

swift解包

作者: 一个好笑的人 | 来源:发表于2021-12-12 23:19 被阅读0次

强制解包:

//能确保该变量一定不为空的时候使用
var text:String!
text="GG"
print(text!)

普通解包:

if let

func function()->String{
    var text:String!
    text="GGG"//注释这个,对比不同
    if let text=text{
        return text;
    }
    return "nil";
}
print (function())

guard let else

func function()->String{
    var text:String!
    text="GGG"//注释这个,对比运行结果
    guard let text=text else {
        return "nil";
    }
    return text;
}
print(function())
  • 在使用if let的时候其大括号类中的情况才是正常情况,而外部主体是非正常情况的返回的nil;
  • 而在使用guard let的时候,guard let else中的大括号是异常情况,而外部主体返回的是正常情况.
  • 对于一个以返回结果为目的的函数,函数主体展示正常返回值,而将异常抛出在判断中,这样不仅逻辑更清晰,而且更加易于代码阅读

对比 强制解包&普通解包

  • 推荐使用普通解包,因为强制解包一旦失败会直接崩溃。
  • 就算很确定某个变量一定不会为空,而去使用强制解包,在复杂多线程工程里面还是可能会出错的。

参考文章:

相关文章

  • swift2.1 新特性

    在 swift2.1 之前可以通过 ?? 来解包变量 在 swift2.1 之后可以通过 ! 来强解包变量 PS参...

  • swift解包

    强制解包: 普通解包: if let guard let else 在使用if let的时候其大括号类中的情况才是...

  • swift 中 可选类型解包的3种写法

    swift 中 可选类型解包的3种写法 代码如下 方法1: if判断后,强制解包 方法2: if let 判断 不...

  • swift optional 解包

  • 获取可选类型的值

    可选绑定(解决的问题是:如何安全的获取可选类型中的数据?) Demo.swift 强制解包 Demo.swift ...

  • swift-解包方式

    隐士可选性使用示例

  • swift的解包问题

    1,swift为什么有可选类型值? 如果一个常量,或变量,它的值可能存在,也可能不存在,那么可以定义这个值为可选类...

  • Swift可选性链式解包中的问题

    在Swift中的可选型是支持链式解包的; 可是下面的代码中如果用链式解包会不成功: 但是用括号把 try? JSO...

  • 2020-11-10可选型

    可选型让我们可以用一种清晰无歧义的方式表示值缺失的情况。 Swift不允许不经解包就使用可选型,解包可以用 if ...

  • 2020-06-17学习笔记

    概述阶段 1.swift中允许进行多次加包,但这也就意味着需要多次解包2.解包顺序是从内向外,先解最内层的包3.g...

网友评论

      本文标题:swift解包

      本文链接:https://www.haomeiwen.com/subject/jypdfrtx.html