Burt.K

Awesome Discovery

[SE-0031] inout 선언을 타입 데코레이션에 맞게 조정하기

작성일 — 2025년 3월 9일

Table of Contents

inout 선언을 타입 데코레이션에 맞게 조정하기

소개

inout 키워드는 복사 입력/복사 출력 인자 동작을 나타낸다. 현재 구현에서는 이 키워드가 인자 이름 앞에 위치한다. 우리는 inout 키워드를 매개변수 라벨이 아닌 타입을 꾸미기 위해 콜론 오른쪽으로 이동할 것을 제안한다.

이 주제에 대한 초기 Swift-Evolution 논의는 “Replace ‘inout’ with &” 스레드에서 이루어졌다.

스레드에서 제안으로, 리뷰

동기

Swift 2에서 inout 매개변수는 콜론의 라벨 쪽이 아닌 타입 쪽에 위치한다. 이 키워드는 라벨을 수정하는 것이 아니라 타입을 수정한다. 라벨 대신 타입을 꾸미는 것은 다음과 같은 장점을 제공한다:

상세 설계

parameter → 외부-매개변수-이름 opt로컬-매개변수-이름 : 타입-주석
타입-주석 → inout 타입-주석

고려한 대안

@inout을 사용한 데코레이션(@inout(T) 또는 @inout T)은 고려되었지만, 최종적으로 제외되었다.