2016-07-02 2 views
4

목록에있는 Bool이 모두 true 인 경우 정확하게 계산하려면 왜 유형을 올바르게 유추하지 않으시겠습니까?멤버에 대한 모호한 참조 &&

+0

나는 당신이 [여기] (http://stackoverflow.com/a/34699637/5654848)를 볼 것을 제안합니다. 자세히 설명합니다. – Dershowitz123

+1

당신은'let result =! bools.contains (false)'라고 간단히 쓸 수 있습니다. 모호성으로 컴파일됩니다. :) 그러나 정확히 왜 이것이 모호한 지에 대해서는 확실히 관심이 있습니다. – Hamish

답변

1

이전에 같은 버그가 발생했습니다 (단, ||). 이에 대한 reduce을 사용하려면, 가장 쉬운 해결책은

let result = bools.reduce(true, combine: { $0 && $1 }) 

또는

let result = bools.reduce(true) { $0 && $1 } 

대신 작성하는 것입니다. 의견에서 지적한 바와 같이, 당신은 또한합니다 (그러나뿐만 아니라이 더 읽을 수 있지만, 오히려 전체 배열의 반복보다 false의 첫 만남에서 멈출 것이기 때문에 그것은 또한 더 효율적

let result = !bools.contains(false) 

을 사용할 수 있습니다 컴파일러가이를 최적화 할 수 있습니다).

관련 문제