Swift map(_:) extension for Set() ?

前端 未结 4 1384
情深已故
情深已故 2020-12-10 04:14
  let numberSet = Set(1...11)
  let divideSet = numberSet.map({  $0 / 10 }) 
  //Error: Set does not have a member named map   :(

Swift 1.2 support

4条回答
  •  误落风尘
    2020-12-10 04:25

    I made an extension for Set:

    extension Set {
    
        /// Map, but for a `Set`.
        /// - Parameter transform: The transform to apply to each element.
        func map(_ transform: (Element) throws -> T) rethrows -> Set {
            var tempSet = Set()
    
            try forEach {
                tempSet.insert(try transform($0))
            }
    
            return tempSet
        }
    }
    

    For example:

    let someSet: Set = [1, 3, 5, 7]
    print(someSet.map { $0 + 1 })
    
    // Prints:  [2, 6, 8, 4]
    

提交回复
热议问题