English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift 연산자 우선순위와 결합성

이 문서에서는 연산자와 연산자를 가진 표현식을 계산하는 규칙을 알 수 있습니다.

Swift 연산자 우선순위

연산자 우선순위는 주어진 수학 표현식을 계산하는 규칙 집합입니다. 여러 가지 연산자가 동시에 사용될 때, 각 부분은 연산자 우선순위라는 특정 순서로 계산됩니다. 일부 연산자는 다른 연산자보다 높은 우선순위를 가지며, 이는 표현식의 계산 방식에 영향을 미칩니다.

연산자 우선순위 표

아래 표는 Swift에서연산자의 우선순위. 그것이 표에서 보여지는 것처럼 높을수록 우선순위가 높습니다.

Swift 표준 라이브러리 우선순위 그룹(높은 순으로)
연산자 그룹예제
비트 변경 우선순위>> &<< &>> >>
곱셈 연산 우선순위&* % & * /
덧셈 우선순위| &+ &- + –  ^
범위 형성 우선..< …
형 변환 우선순위is as
빈 합 연산자 우선순위??
비교 우선순위!= > < >= <= === ===
논리 결합 우선순위&&
논리 연합 우선순위||
기본 우선순위~>
삼항 연산자 우선순위?:
화살표 함수 우선순위( )
할당 우선순위|= %= /= &<<= &>>= &= *= >>= <<= ^= += -=

예제1캡션: Swift 연산자 우선순위

let x = 4 + 5 * 5
print(x)

위의 프로그램을 실행하면, 출력은 다음과 같을 것입니다:

29

위의 예제에서, 표현식을 왼쪽에서 오른쪽으로 읽으면서, 출력이 될 것으로 예상할 수 있습니다45하지만, 곱셈 연산자의 우선순위는 덧셈 연산자보다 높기 때문에 표현식4 + 5 * 5계산되어4 + (5 * 5)로서, 스크린에 출력됩니다29.

실행 단계
단계
연산자표현식표현식에서 반환하는 값
1*5 * 525
2+4 + 2529
3=print(x)29

예제2캡션: 복잡한 대입 연산자가 있는 Swift 연산자 우선순위

var y = 15
y += 10 - 2 * 3
print(y)

위의 프로그램을 실행하면, 출력은 다음과 같을 것입니다:

19

위의 예제에서, 변수 y의 표현식 var y = 15할당됩니다15.

다음 표현식 y + = 10-2 * 3에서, 곱셈 연산자의 우선순위는 뺄셈 복합 대입 연산자보다 높습니다(+ =)

따라서, 표현식 y + = 10-2 * 3 계산되어 y = y + (10-(2 * 3))

실행 단계
단계연산자표현식표현식이 반환하는 값
1=var y = 1515
2*2 * 36
3--10-64
4+ =15 + 419

Swift 연산자 결합성

연산자 우선순위로 정의된 예약 규칙에 따라 표현식을 평가하는 것이 있지만, 여러 가지 동일한 우선순위의 연산자가 있을 때 무엇이 일어날지 궁금할 수 있습니다. 연산자 결합성은 동일한 우선순위를 가진 연산자를 어떻게 조합할지 정의합니다.

Swift에서 연산자는 왼쪽 결합, 오른쪽 결합 또는 결합이 없을 수 있습니다. 표현식에서 순서대로 사용될 때, 왼쪽 결합 연산자는 점유자가 문장의 왼쪽에서 그룹화되고, 오른쪽 결합 연산자와 무관한 연산자는 정의되지 않습니다.

연산자 결합 표

아래 표는 Swift 연산자의 결합성과 우선순위를 보여줍니다.

Swift 표준 라이브러리 결합(우선순위가 높은 순으로)
연산자 그룹예제결합성
位移 우선순위>>& <<& >> >>없음
곱셈 연산 우선순위&*%&* /왼쪽 결합
덧셈 우선순위| &+&-+-^왼쪽 결합

범위 형성 우선순위

.. <...없음
형 변환 우선순위is a
없음
빈 합 연산자 우선순위??오른쪽 결합
비교 우선순위!=> <> = <= === ===없음

논리 결합 우선순위

&&왼쪽 결합
논리 연합 우선순위||왼쪽 결합
기본 우선순위~>없음
삼항 연산자 우선순위?:오른쪽 결합
화살표 함수 우선순위()오른쪽 결합
할당 우선순위| =%= / =&<< =&>> =&= * = >> = << = ^ =오른쪽 결합

예제3:Swift 연산자 결합성

let x =  40  / 2 * 10
print(x)

위의 프로그램을 실행하면, 출력은 다음과 같을 것입니다:

200

위의 프로그램에서, 표현식은 왼쪽에서 오른쪽으로 계산됩니다. 이는 연산자가 곱셈 우선 그룹에 속하며 왼쪽 결합성을 가지기 때문입니다. 따라서 나눗셈 연산은 미리 수행되며 결과는200. 만약 먼저 곱셈 연산을 수행하고 싶다면, 다음과 같이 해야 합니다:2 * 10표현식을 () 괄호로 감싸서 다음과 같이 표현합니다:

let x =  40  / (2 * 10)
print(x)

위의 프로그램을 실행하면, 출력은 다음과 같을 것입니다:

2

귀하는 우선순위와 결합 표를 기억할 필요가 없습니다. 대부분의 경우 연산자의 우선순위와 결합성 자체가 매우 의미 있어요. 의문이 있으면 언제든지 이 표를 참조할 수 있습니다. 또한, 코드를 더 이해하기 쉽게 하기 위해 괄호를 사용하는 것이 좋습니다.