
28
이펙티브 러스트
아이템
2
: 공통 동작은 타입 시스템으로 표현하라
아이템
1
에서는 러스트의 타입 시스템으로 데이터 구조를 표현하는 방법을 설명했다. 이번에
는 러스트의 타입 시스템으로 동작을 표현하는 방법을 알아보자.
아이템
2
에서 설명하는 메커니즘은 다른 언어와 비슷하므로 여러분도 익숙할 것이다.
●
함수
function
: 코드 블록에 이름을 붙이고 매개변수 목록을 받게 만든 범용 메커니즘이다.
●
메서드
method
: 특정 데이터 구조의 인스턴스에 속한 함수로서, 객체 지향 프로그래밍 패러다임의 등장으
로 여러 프로그래밍 언어에서 쉽게 볼 수 있다.
●
함수 포인터
function
pointer
: 다른 코드를 간접 참조 방식으로 호출하게 해주는 메커니즘으로,
C
++와 고 언
어를 비롯한 대부분의
C
계열의 언어에서 제공된다.
●
클로저
closure
: 본래 리스프
Lisp
계열 언어에서 널리 사용되던 개념인데, 최근
C
++ (버전
11
이후)와 자바
(버전
8
이후)를 비롯한 주요 프로그래밍 언어에서도 제공된다.
●
트레이트
trait
: 동일한 대상에 적용될 수 있는 관련 기능의 묶음이다. 다른 언어에도 트레이트와 비슷한 개
념이 있다. 예를 들어
C
++의 추상 클래스, 고와 자바의 인터페이스 등이 있다.
물론 각 메커니즘마다 러스트만의 특징이 있다. 이번 아이템에서 ...