美文网首页
if let = ,let = 的多项判断简写

if let = ,let = 的多项判断简写

作者: FreshAlpha | 来源:发表于2018-11-20 15:08 被阅读0次

举个简单例子

class Person {    var headerImageUrl: String?    }

func setHeaderImage() { 

  let person = Person() 

  if let imageStr = person.headerImageUrl, let imageUrl = URL(string: imageStr) {   

    headerImgV.sd_setImage(with: URL(string: imageUrl))

    }

}

当给一个headerImgVSD一个图片的时候,取Person中的string并转换成URL,一般情况下会写两个let,但实际在if的代码中往往只用到最后一个let拿到的值,并且多次let在语句的写法上也比较冗余。

解决办法是每个需要解包的判断都可以用flatmap{}函数代替,写法上简便,用起来也方便。

func setHeaderImage() {

    let person =Person()

    if let imageUrl = person.headerImageUrl.flatMap({$0}).flatMap({URL(string: $0)}) {

        headerImgV.sd_setImage(with:URL(string: imageUrl))

    }

}

当if后面有多重let的时候这样用起来方便许多。

相关文章

  • if let = ,let = 的多项判断简写

    举个简单例子 class Person { var headerImageUrl: String? }func ...

  • ES6 笔记

    var:它是variable的简写,可以理解成变量的意思。let:let是局部变量声明,防止数据污染,let声明只...

  • 认识 ES2015 (一) —— 需要知道的几个特性

    ES2015 特性 1、属性和方法的简写 2、计算属性 3、let和const- let是更完美的var- let...

  • 3 ES6 对象扩展、解构赋值

    1、对象扩展 -> 属性简写、可计算属性、扩展静态方法; (1).属性简写:let obj = { a: a; t...

  • Swift中可选值判断 (强解包和??运算符)

    1. 强解包和?? 运算符来解决可选值的判断 2.if - let/var 使用if - let 判断可选值是否为...

  • 2018-08-22

    对象 一. es6中对象的简写 let json = { a, b, show(){} } 对于方法不...

  • if let 与 if else

    if let 判断的值里面的值为可选值if let X {X 有值}else {X 没有值} if X {X ...

  • 2018-03-08

    判断移动终端的不同版本 let browser = { versions: function () { ...

  • swift

    1.if let 和if var 连用的语法,在赋值的同时进行判断。可能为nil的情况 2.guard let e...

  • js条件判断

    // js中的判断操作语句 /* * if/else/else if */ { let num = 12; if(...

网友评论

      本文标题:if let = ,let = 的多项判断简写

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