高阶函数应用

2019-03-19  本文已影响0人  玉米地里种玉米
class Pet {
    let type: String
    let age: Int
    
    init(type: String, age: Int) {
        self.type = type
        self.age = age
    }
}

var pets = [
            Pet(type: "dog", age: 5),
            Pet(type: "cat", age: 3),
            Pet(type: "sheep", age: 1),
            Pet(type: "pig", age: 2),
            Pet(type: "cat", age: 3),
            ]
// 遍历所有元素
pets.forEach { p in
//    print(p.type)
}

// 是否包含满足条件的元素
let cc = pets.contains { $0.type == "cat" }

// 第一次出现满足条件的元素的位置
let firstIndex = pets.firstIndex { $0.age == 3 }
// 1

// 最后一次出现满足条件的元素的位置
let lastIndex = pets.lastIndex { $0.age == 3 }
// 4

// 根据年龄从大到小进行排序
let sortArr = pets.sorted { $0.age < $1.age }

// 获取age大于3的元素
let arr1 = pets.prefix { $0.age > 3 }
// [{type "dog", age 5}]

// 获取age大于3的取反的元素
let arr2 = pets.drop { $0.age > 3 }
// [{type "cat", age 3}, {type "sheep", age 1}, {type "pig", age 2}, {type "cat", age 3}]


let line = "BLANCHE:   I don't want realism. I want magic!"
// 将字符串转化为数组
let wordArr = line.split(whereSeparator: { $0 == " " })
// ["BLANCHE:", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]
上一篇 下一篇

猜你喜欢

热点阅读