Tôi đang cố gắng giảm bớt một mảng Bool
s bằng cách áp dụng toán tử logic OR ( ||
) bằng cách sử dụng mã sau, tuy nhiên tôi gặp lỗi:
func reduceBools(values: [Bool]) -> Bool {
return values.reduce(false, combine: ||)
}
Tham chiếu không rõ ràng đến thành viên '||'
Tương tự đối với các số nguyên, mã hoạt động giống như một sự quyến rũ.
func reduceInts(values: [Int]) -> Int {
return values.reduce(0, combine: +)
}
Tôi đã có thể làm cho nó hoạt động bằng cách thêm một ||
hàm (mã bên dưới) hoặc sử dụng một hàm { $0 || $1 }
đóng nhưng tôi không thích những cách tiếp cận này và tôi muốn chỉ cần chuyển toán tử.
func ||(lhs: Bool, rhs: Bool) -> Bool {
return lhs || rhs
}
Điều tương tự cũng xảy ra đối với toán tử logic AND ( &&
).
Làm thế nào tôi có thể làm cho nó hoạt động mà không sử dụng hack ở trên?