&도 우선 순위가있는 단항 연산자이기 때문에 문제가 발생합니다. 이 작업을 수행 할 때
은 : 진정한 결과
(@entries.any?)&(:submitted?)
: 당신은 실제로 일을
@entries.any?&:submitted?
이있다. @ 항목에 엔트리가 있고 심볼이 제출 되었습니까? true의 진리 값을가집니다. 이 작업을 수행 할 때
는 :
@entries.any? &:submitted?
는 당신이 실제로하고있는 것은 이것이다 :
당신이 정말로 원하는 것입니다
@entries.any?(&:submitted?)
.
class Entry
def submitted?
false
end
end
PS : 다음 클래스를 사용하여, 그 결과를 재현하려면
class Entry
def submitted?
true
end
end
:
그의 일을 가지고 @pilcrow 이유는 그/그녀가 다음과 같은 클래스를 사용하고 있다는 점이다 동일 @ fl00r의 예 :
[1,2,nil].any?&:nil? and [1,2,nil].any? &:nil?
[1,2, nil] .any? true가되고 nil? true의 진리 값을 가지므로 [1,2, nil]도 nil 값을 포함하므로 결과는 동일하지만 계산이 다릅니다.
나를위한 작품, 1.8 및 1.9, 하찮은'클래스 항목; def가 제출 되었습니까? 진정한 엔드 엔드'. 문제를 재현 할 수있는 가능한 최소의 코드를 볼 수 있습니까? – pilcrow
1.8.7 REE는 spave와 공간이 없으면 훌륭하게 작동합니다. [1,2, nil] .any? & : nil?'및'[1,2, nil] .any? & : nil? ' – fl00r