Skip to content

Files

Latest commit

 

History

History
49 lines (22 loc) · 934 Bytes

reduce_boolean.md

File metadata and controls

49 lines (22 loc) · 934 Bytes

Pattern: Missing use of .allSatisfy()/.contains()

Issue: -

Description

Prefer using .allSatisfy() or .contains() over reduce(true) or reduce(false)

Examples of correct code:

nums.reduce(0) { $0.0 + $0.1 }


nums.reduce(0.0) { $0.0 + $0.1 }

Examples of incorrect code:

let allNines = nums.reduce(true) { $0.0 && $0.1 == 9 }


let anyNines = nums.reduce(false) { $0.0 || $0.1 == 9 }


let allValid = validators.reduce(true) { $0 && $1(input) }


let anyValid = validators.reduce(false) { $0 || $1(input) }


let allNines = nums.reduce(true, { $0.0 && $0.1 == 9 })


let anyNines = nums.reduce(false, { $0.0 || $0.1 == 9 })


let allValid = validators.reduce(true, { $0 && $1(input) })


let anyValid = validators.reduce(false, { $0 || $1(input) })

Further Reading