Swift 高阶函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lym594887256/article/details/80563199
 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"]
       */

猜你喜欢

转载自blog.csdn.net/lym594887256/article/details/80563199
今日推荐