Skip to content

Instantly share code, notes, and snippets.

View jdev7's full-sized avatar

Juan Navas jdev7

View GitHub Profile
@jdev7
jdev7 / ReduceRandomString.swift
Created November 1, 2017 21:46
Using reduce to get a random String
extension String {
static func randomString(size: UInt) -> String {
let stringSet = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"
return (0..<size).reduce("", { (partialResult, _) -> String in
let randomIndex = arc4random_uniform(UInt32(stringSet.count))
let charIndex = stringSet.index(stringSet.startIndex, offsetBy: String.IndexDistance(randomIndex))
return partialResult.appending(String(stringSet[charIndex]))
})
}
@jdev7
jdev7 / ReducePersons.swift
Created November 1, 2017 21:00
Reducing over objects
struct Person {
let name: String
let lastName: String
let birthDate: Date
init(name: String, lastName: String, birthDate: String) {
let df = DateFormatter()
df.dateFormat = "dd-MM-yyyy"
self.name = name
@jdev7
jdev7 / ReduceBooleans.swift
Created November 1, 2017 20:36
Reduce Booleans
let booleans = [true, true, false, true, false]
let booleans2 = [true, true, true, true, true]
let result = booleans.reduce(true, { $0 && $1 })
let result2 = booleans2.reduce(true, { $0 && $1 })
print(result) // false
print(result2) // true
@jdev7
jdev7 / ReduceCollection.swift
Created November 1, 2017 19:35
Reduce collection
let collection = [5, 3, 10, 1, 7]
let total = collection.reduce(0, +)
// 26
@jdev7
jdev7 / ReduceStringsCollection.swift
Created November 1, 2017 19:35
Reduce strings collection
let stringsCollection = ["Swi", "ft ", "ro", "cks", "!!"]
let finalString = stringsCollection.reduce("", +)
// Swift rocks!!