연산자의 연관성은 무엇이며 왜 중요한가요?
연관성 (연관성)이란 무엇이며 왜 중요한가요?
업데이트 : 연산자 연관성
연산자의 경우 연관성은 동일한 연산자가 행에 나타날 때 먼저 적용되는 연산자 발생을 의미합니다. 다음 Q
에서 운영자가 되십시오.
a Q b Q c
경우 Q
왼쪽 연관이있다, 그것은으로 평가
(a Q b) Q c
그리고 그것은 올바른 연관성이라면 다음과 같이 평가됩니다.
a Q (b Q c)
표현의 의미를 변경하기 때문에 중요합니다. 정수 산술을 사용하는 나누기 연산자를 고려하십시오.
4 / 2 / 3 <=> (4 / 2) / 3 <=> 2 / 3 = 0
올바른 연관성이라면 0으로 나누기 때문에 정의되지 않은 것으로 평가됩니다.
4 / 2 / 3 <=> 4 / (2 / 3) <=> 4 / 0 = undefined
세 종류의 연관성이 있습니다.
수학에서 연관 속성은 더하기 (+)와 같은 연산자의 속성입니다. 이 속성을 사용하면 명령문의 값을 변경하지 않고 괄호를 다시 정렬 할 수 있습니다.
(a + b) + c = a + (b + c)
프로그래밍 언어에서 연산자의 연관성 (또는 고 정성) 은 괄호 가 없을 때 동일한 우선 순위의 연산자를 그룹화하는 방법을 결정하는 속성입니다 . 즉, 각 연산자가 평가되는 순서입니다. 이것은 프로그래밍 언어마다 다를 수 있습니다.
CPU 캐시에서 연관성은 성능을 최적화하는 방법입니다.
우선 순위가 동일한 연산자에 대한 평가 순서입니다. LEFT TO RIGHT 또는 RIGHT TO LEFT 순서가 중요합니다. 에 대한
3 - 2 - 1
LEFT에서 RIGHT이면
(3 - 2) - 1
그리고 0입니다. 오른쪽에서 왼쪽이면
3 - (2 - 1)
대부분의 언어에서 마이너스 연산자는 LEFT TO RIGHT 연관성이있는 연관성이 있습니다.
"연산자 연관성"을 참조하는 경우-괄호가 없을 때마다 우선 순위의 연산자가 그룹화되는 방식을 언어가 결정하는 방식입니다.
예를 들어 C 기반 언어의 + 및-연산자는 우선 순위를 갖습니다. 둘 다 (괄호없이) 사용하는 식을 사용할 때 컴파일러는 평가할 순서를 결정해야합니다.
12-5 + 3을 쓰면 가능한 평가는 다음과 가능합니다.
- (12-5) + 3 = 10
- 12- (5 + 3) = 4
형식을 평가하는 순서에 따라 다른 결과를 얻을 수 있습니다. C 기반 언어에서 + 및-는 연관성을 남겼습니다. 이것은 위의 경우에 첫 번째 경우에 평가를 의미합니다.
모든 언어에는 우선 순위와 연관성 모두에 강력하게 정의 된 규칙이 있습니다. 여기 에서 C # 규칙에 대해 자세히 알아볼 수 있습니다 . 연산자 연관성 과 우선 순위 의 일반적인 개념은 wikipedia에서 잘 다룹니다.
단순한 !!
Left Associative 는 거기에서 오른쪽으로 평가한다는 의미입니다.
Right Associative 는 우리의 표현을 오른쪽에서 평가하는 의미합니다.
*, / 및 %의 우선 순위는 동일하지만 연관성에 따라 답변이 변경 될 수 있습니다.
예 : 우리는 표현이 있습니다 : 4 * 8 / 2 % 5
왼쪽 연관 : (4 * 8) / 2 % 5 ==> (32/2) % 5 ==> 16 % 5 ==> 1
연관 연관 : 4 * 8 / (2 % 5) ==> 4 * (8 / 0) ==> 정의되지 않은 동작
도움이 되셨기를 바랍니다.
연산자 연관성을 의미 가정합니다 ...
연산자에 피 연산 바인딩하는 순서입니다. 원래 :
ab + c
다음과 같이 평가 될 수 있습니다 (-및 +의 우선 순위가 같다고 가정).
((ab) + c) 또는,
(a- (b + c))
연산자가 연관되어있는 경우 (왼쪽 피연산자에 즉시 바인딩) 첫 번째 연산자로 평가됩니다. 그들이 올바른 연관성이라면 두 번째로 평가됩니다.
연산자 연관성을 의미하는 경우 :
식이 구문 분석되는 방식을 정의합니다. 표준을 제공하는 모든 방식으로 구문 분석됩니다.
부작용이있을 수있는 동일한 전례가있는 작업에 가장 중요합니다.
이전 예의 대부분은 상수를 사용했습니다. 인수가 함수 호출 인 경우 호출 순서는 물론 컴파일러에 따라 연관 규칙에 의해 결정될 수 있습니다. 그리고 그 기능에 부작용이 있다면 ..
우리 모두는 우선 순위가 중요하다는 것을 알고 있지만 표현의 의미를 해석 할 때 연관성도 중요합니다. 정말 간단한 소개를 위해 Power of Operators를 사용해보십시오 .
'IT' 카테고리의 다른 글
실행되지 않는 코드가 정의되지 않은 동작을 호출 할 수 있습니까? (0) | 2020.10.10 |
---|---|
정적 대. (0) | 2020.10.10 |
Javascript에서 URL 쿼리 매개 변수를 어떻게 구문 분석합니까? (0) | 2020.10.10 |
gunicorn 및 nginx로 Django 배포 (0) | 2020.10.10 |
SQL 테이블을 C # DataTable로 읽기 (0) | 2020.10.09 |