스위프트에선 기본적으로 서로다른 타입의 변수나 상수끼리의 결합연산은 허용되지 않는다.
하지만 프로그래밍 과정에선 서로 다른 타입의 변수나 상수를 결합해야 하는 경우가 종종 발생하는데 이를 위해 스위프트는 다음과 같은 방법들을 제공한다.
var strMe = "나의 키는"
var height = 188
var heightstrMe = strMe + String(height)
// "나의 키는 188"
String형인 StrMe와 Int형인 height는 본래 결합연산이 불가능하다. 하지만 변수의 값을 다른 타입으로 변경한다면 연산이 가능해진다.
보통 이를 생성자 or 초기화 메소드라고 부르는데 요는 기본 자료형 객체를 다른 타입의 값으로 바꿔 새로운 객체를 만드는 방법이다. 여기선 String(188)로 정수형 188을 문자열 "188"로 바꿨다.
요악하자면 다음과 같은 형식을 사용해 정수형을 문자열로 문자열을 정수형으로 바꿀 수 있는 것이다.
String(문자열로 바꾸고 싶은 정수값 or 변수)
Int(정수로 바꾸고 싶은 문자열)
다만 한 가지 주의할 것이 있는데 정수로 바꾸고 싶은 문자열 같은 경우는 문자열이 애초에 "122", "188" 같은 숫자로 구성된 문자열이어야 한다는 것이다.
문자열 템플릿
앞에선 서로 다른 변수들 사이의 결합을 이야기했지만 서로 다른 타입의 변수를 문자열로 결합하는 것만 생각한다면 문자열 템플릿을 사용해 쉽게 처리할 수 있다.
// 상수와 변수 정의
let name = "조제"
let year = 2022
let month = 11
let day = 23
// 문자열 템플릿 사용해 문자열 결합
let profile = "\(name)는 \(year)년 \(month)월 \(day)일에 포스팅했다."
print(profile)
/* 실행결과
조제는 2022년 11월 23일에 포스팅했다.
*/
위 예에서 문자열 템플릿에 사용된 상수들 중 하나를 제외한 나머지는 모두 Int타입이다. 하지만 문자열 템플릿을 사용하면 모두 문자열로 쉽게 바꿔 표현할 수 있다.
문자열 템플릿은 괄호 내부의 값의 연산을 가능하게도 한다.
// 상수 정의
let cake = 3
let waffle = 2
let croffle = 4
// 출력할 구문 문자열 템플릿으로 구성
let total = "디저트는 총 \(cake + waffle + croffle)개 이다"
print(total)
/* 실행결과
디저트는 총 9개 이다.
*/
문자열 템플릿에 반드시 변수나 상수를 사용해야 하는 것은 아니다. 리터럴(숫자 그대로) 구성된 단순 연산이나 표현식도 처리할 수 있다.
let result = "1부터 5까지의 합은 \(1 + 2 + 3 + 4 + 5)이다."
print(result)
/* 실행결과
1부터 5까지의 합은 15이다.
*/
출처 : 꼼꼼한 재은씨의 Swift 문법편
'Swift > 문법' 카테고리의 다른 글
스위프트(Swift) - 연산자 (0) | 2022.04.26 |
---|---|
스위프트(Swift) - 멀티 라인 스트링 (0) | 2022.04.25 |
스위프트(Swift) - 타입 추론과 타입 어노테이션 (0) | 2022.04.21 |
스위프트(Swift) - 기본 자료형 (0) | 2022.04.20 |
스위프트(Swift) - 변수와 상수 (0) | 2022.04.19 |