Swift 高阶函数

一,swift 4 高阶函数

 var json: JSON =   ["name": "Jack", "age": 25, "list": ["a", "b", "c", ["what": "this"]]]
//        json["list"][3]["what"] = "that"//这种写法,无法改变值
        json["list",3,"what"] = "that"
        let path:[JSONSubscriptType] = ["list",3,"what"]
        json[path] = "that----"
        
        let tempArray:[Any] = ["hosten","lyoyongm",["name":"meng"],"core",4,["section":"two"]]
        
       // first只要条件满足一个或者是只要找到任意一个满足条件的都会返回
        let matchedLocalExt = tempArray.first { (first) -> Bool in
            return first is Dictionary<String,String> || "\(first)" == "core"
        }
            //匹配值 ▿ Optional<Any>
//            ▿ some : 1 element
//        ▿ 0 : 2 elements
//        - key : "name"
//        - value : "meng"
        let matchedLocalExtOne = tempArray.first { (first) -> Bool in
            return first is Dictionary<String,String>
        }
            //返回值与上面相同▿ Optional<Any>
//            ▿ some : 1 element
//        ▿ 0 : 2 elements
//        - key : "name"
//        - value : "meng"
        //简写方式
        let  SimpleMatchedLocalExtOne = tempArray.first { $0 is Dictionary<String,String>
        }
        print("匹配第一个元素:\(matchedLocalExt) one:\(matchedLocalExtOne) 简写匹配:\(SimpleMatchedLocalExtOne)")
        
        let matchedFilter = tempArray.filter {"\($0)" == "lyoyongm"}
        //  - 0 : "lyoyongm"
        let matchedFilterMut = tempArray.filter {"\($0)" == "lyoyongm" || $0 is Dictionary<String,Any>}
        /*
         3 elements
         - 0 : "lyoyongm"
         ▿ 1 : 1 element
         ▿ 0 : 2 elements
         - key : "name"
         - value : "meng"
         ▿ 2 : 1 element
         ▿ 0 : 2 elements
         - key : "section"
         - value : "two"
 */
        print("过滤匹配 元素:\(matchedFilter)  多条件:\(matchedFilterMut)")
        
        let matcheMapMut = tempArray.map {"\($0)" == "lyoyongm" || $0 is Dictionary<String,Any>}
        let matcheMapMutRe = tempArray.map {"\($0)lyoyongm" }
        print("map匹配 元素:\(matcheMapMut) map替换:\(matcheMapMutRe)")
        /*
         配:Optional(["name": "meng"])
         过滤匹配 元素:["lyoyongm"]  多条件:["lyoyongm", ["name": "meng"], ["section": "two"]]
         map匹配 元素:[false, true, true, false, false, true] map替换:["hostenlyoyongm", "lyoyongmlyoyongm", "[\"name\": \"meng\"]lyoyongm", "corelyoyongm", "4lyoyongm", "[\"section\": \"two\"]lyoyongm"]
       */


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简简单单lym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值