표현식

어떤 값(들)과 연산자 등으로 이루어지는 계산식을 흔히 ‘표현식’이라고 한다. ‘표현식’이라는 말 자체는 주로 언어의 문법을 정의해놓은 문서에서 등장하는데, 주로 다음과 같은 식으로 일종의 유사 코드로 표현된다.

# Binding statement
Identifier := Expression

위 내용은 ‘바인딩 구문’의 형식을 설명한다. 좌변은 구분자이고 우변은 표현식이다. 구분자라는 것은 어떤 값을 프로그램 내에서 구분하기 위한 심벌로 흔히 프로그래머가 이름 붙이는 변수명이 여기에 해당한다. 우변은 표현식이다. 표현식은 단항 혹은 다항으로 구성되는 계산식 같은 것이라 했다.

a = 3
b = 4 + 5
c = 23 ** 2

이런 코드가 가장 간단한 파이썬의 바인딩 구문(대입문)이며 = 연산자의 우변이 되는 3, 4 + 5, 23 **2 등의 수식을 우리는 표현식이라 한다.  표현식의 가장 큰 특징은 하나의 값으로 평가된다는 점이다. 4 + 59 라는 값으로 평가되며, 23**2 는 529 라는 값으로 평가된다. 따라서 단순한 값 리터럴이나 연산자에 의한 계산식 외에도 함수호출과 같은 코드 역시 함수 호출은 그 리턴값으로 평가되므로 표현식의 일종이다.

기타

정규표현식도 ‘표현식’이라는 표현을 포함하고 있는데, 이는 정규표현식의 패턴 체계가 그 자체로 정규언어의 일종이며, 따라서 임의의 정규표현식 패턴은 정규표현식이라는 언어 내에서 표현식으로 평가된다. 이를 테면 \d 라는 패턴은 0~9 사이의 하나의 숫자로 평가된다는 말이다.

즉 표현식이나 평가식은 결국 같은 의미이며, 그 자체는 ‘아직 계산/평가되지 않은 어떤 하나의 값’이라고 할 수 있다.

 

Swift의 조건절 패턴 매칭 총정리

Swift의 조건절은 사실 패턴 매칭을 판단한다

if 문은  표현식을 평가한 결과가 true 인지 false 인지를 판단하여 분기를 처리한다는 것이 분기문에 대한 가장 간단한 설명인데, 사실 Swift의 if 문은 패턴매칭에 의한 평가를 우선지원하고 있기 때문에, 실제로는 적용할 수 있는 문법의 종류가 매우 다양하다.

여러 패턴으로 표현할 수 있는 조건이 다양하면 중첩되는 if 문을 그만큼 줄일 수 있어서 깔끔하고 명료한 코드를 작성하는데 도움이 된다. 특히 Swift는 ifguard문 외에도 switch, while 및 심지어 for 문에 이르기까지 조건절을 붙일 수 있다.

조건절에 사용되는 패턴 매칭에 대해 모든 것을 알아보도록 하자. Swift의 조건절 패턴 매칭 총정리 더보기