언제 연산자 연관성이 중요한가?
-
21-12-2019 - |
문제
대부분의 프로그래밍 언어 있는 테이블의 우선 순위와 연관성에 대한 바이너리 연산자입니다.연관성이 중요한 어떤 경우에는 예: (a - b) - c
!= a - (b - c)
.
그러나,대한 연관 같은 연산자 &&
그것은 것 같지 문제,그러나 대부분의 언어 목록이 왼쪽으로 연합.
이 있는 상황이 실제로 사이의 차이 (a && b) && c
고 a && (b && c)
?
해결책
내가 믿을 수 없어 너무 많은 잘못된(삭제)답변...어쩌면 내가 응답해야 한다.
첫째, 우선 순위!= 연관성!= 평가 순서.
이제는 우리가 그 밖의 방법:연관성에서 중요 한 경우가 있습니다.
대 a + b + c
,중요한 경우 a
, b
, 고 c
은 부동 소수점 대신 정수기 때문에,반올림 오류를 축적 방법에 따라 다르게 용어는 그룹화됩니다.
에 대한 특정 사례의 &&
고 ||
, 상관없 한지는 오버로드 (가능한 C++,C)하지만 언어가 여전히 정의 하나는 그냥 일관성을 위해-그리고 그래서는"나"표현의 코드(에 따라 문법)가 유일하다.그것은 또한 밖으로 작동하는 혜택의 C++부터 지금의 의미를 오버로드 &&
고 ||
지 않는 모호합니다.
다른 팁
추가@Mehrdads@응답(나회가 직접 참여 할 수있):
만약 당신이 이제까지 구성 분석에,당신은 당신의 사업자가 연관성,그렇지 않으면
a && b && c
단순히 구문 오류가 있습니다.가정을 위해야 하지 않을 구문 오류,결정해야 합니다면 그것은 의미한다:
(a && b) && c
나
a && (b && c)
할 수 없습니다 단지 말:나는 걱정하지 않는다.