3.3.3 타입이 다른 변수끼리의 결합

프로그래밍 과정에서는 서로 다른 타입의 변수나 상수를 결합해야 하는 경우가 종종 발생합니다. 하지만 스위프트에서 서로 다른 타입의 변수나 상수끼리의 결합 연산은 허용되지 않습니다. 변수의 타입을 변경해서 결합해 보려고 해도, 한 번 타입이 정해지고 나면 다른 타입으로 변경 할 수도 없죠, 타입이 서로 다른 변수, 예를 들어 문자열과 숫자를 결합하려면 어떻게 해야 할까요?

변수의 값을 다른 타입으로 변경해야 할 필요가 있다면, 바꾸고자 하는 타입의 새로운 객체를 명시적으로 생성해야 합니다. 이때의 객체는 보통 변수나 상수를 의미합니다. 다행히 스위프트의 기본 자료형 객체들은 다른 타입의 값을 자신의 타입에 맞게 변환하여 새로운 객체를 만드는 방법을 제공합니다. String의 경우 String()라는 형식으로 이를 지원하죠. 괄호 안에 원하는 정수값을 넣으면 문자열이 만들어지는 방식입니다 정수값이나 기존의 변수를 문자열 타입으로 바꾸는 것이 아니라, 새로운 문자열 인스턴스를 만드는 것입니다. 기존의 변수에는 아무런 영향이 없이, 새로 생성하는 것이라는 점에 주의해야합니다.

문자열을 정수형이나 실수형으로 바꿀 대에도 이와 비슷한 방식이 적용됩니다. 문자열을 정수형으로 바꾸려면 다음과 같이 Int() 구문을 사용하면 됩니다. 앞의 문자열 방식처럼 새로운 정수 인스턴스가 만들어지죠.

문자열 템플릿

서로 다른 타입의 변수를 문자열로 결합하는 것만 생각한다면 문자열 템플릿을 사용하여 쉽게 처리할 수 있습니다. 문자열 템플릿은 변수나 상수의 값을 문자열 속에 포함시키는 방법으로, 정수나 실수 등 문자열이 아닌 값도 변환 과정 없이 사용할 수 있도록 스위프트가 제공하는 기능입니다.

문자열 템플릿을 사용하는 방식은 매우 간단합니다. 문자열에서 원하는 위치에 백슬래시(\)를 입력하고, 포함하려는 값이 들어있는 변수나 상수를 괄호로 감싸면 끝입니다.

// 상수와 변수를 정의
let name  = "꼼꼼한 재은씨"
let year = 2014
let month = 10
let day = 1

// 문자열 템플릿을 사용한 문자열 결합
let profile = "\(name)\(year)\(month)\(day)일에 출간되었습니다."

print(profile)
꼼꼼한 재은씨는 2014년 10월 1일에 출간되었습니다.

문자열 템플릿의 기능은 이뿐만이 아닙니다. 문자열 템플릿을 이용하면 괄호 내부에서 값을 연산할 수도 있습니다.

// 상수 정의
let apple = 3
let banana = 2
let oragne = 4

// 출력할 구문을 문자열 템플릿으로 구성
let desc = "과일은 총 \(apple+banana+oragne) 개입니다"
print(desc)
과일은 총 9 개입니다

Last updated