Swift랑 친해지기/Swift 책보면서 정리해보기

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

데브킹덕 2022. 1. 13. 14:34

 스위프트에서는 서로 다른 타입의 변수나 상수끼리의 결합 연산은 허용되지 않음

var gd = "내 희망키는"
var height = 185

var height = gd + String(height)

타입 추론에 의하여 gd는 String 타입, height는 Int타입이 되겠쥬??

"내 희망키는 185" 라는 문자열을 만들어내고 싶지만 서로 타입이 다르기 때문에 단순히 두 변수간의 결합은 불가능함

그래서 타입을 바꿔볼까?? 해도 변수와 상수는 타입을 변경할 수가 없음... 

 

변수의 값을 다른 타입으로 변경해야 할 필요가 있다면, 바꾸고자 하는 타입의 새로운 객체를 명시적으로 생성해야함

이때 객체는 보통 변수나 상수를 의미함 

스위프트의 기본자료형 객체들은 다른 타입의 값을 자신의 타입에 맞게 변환하여 새로운 객체를 만드는 방법을 제공함

String의 경우 String() 라는 형식을 지원함

()안에 원하는 수값을 넣으면 문자열이 만들어짐 

이것을 우리는 생성자 또는 초기화 메소드라고 부름

 

정수값을 문자열로 만드는 방식은 다음과 같다. 

String(문자열로 바꾸고 싶은 정수값 또는 변수)

이는 정수값이나 기존의 변수를 문자열 타입으로 바꾸는 것이 아니라, 새로운 문자열 인스턴스를 만드는 것임 

 

문자열을 정수형이나 실수형을 만드는 방식은 다음과 같다. 

Int(<정수로 바꾸고 싶은 문자열>)

문자열을 정수로 변환할 때에는 문자열 자체가 정수로 변환 가능한 값이어야 함

예를들어 "111", "187"등과 같은 숫자로 구성된 문자열이어야 함 

"이러는거는 정수형이 안되지" 등은 변환이 안되겠쥬??

 

문자열 템플릿

변수나 상수의 값을 문자열 속에 포함시키는 방법으로 스위프트가 제공하는 기능임

 

방법은 문자열에서 원하는 위치에 백슬래시 \를 입력 후

포함하려는 값이 들어 있는 변수나 상수를 괄호로 감싸면 됨

// 상수와 변수를 먼저 정의

let hi = "안녕하세요"
let year = 2022


//문자열 템플릿 이용한 문자열 결합
let profile = "\(hi) 임인년인 \(year) 새해복 많이 받으세요."
print(profile)

괄호 내부에서 값을 연산 할 수 도 있음

변수나 상수 이외에도 리터럴로 구성된 단순연산이나 간단한 표현식도 처리 가능 

// 상수 정의
let gdage = 21
let topage = 23


let agesum = " 나이의 합은 총 \(gdage+topage)살입니다"
print (agesum)

//문자열 템플릿을 이용한 숫자의 합 구하는 식
let result = " 0부터 3까지의 합은 \(0 + 1 + 2 + 3) 입니다."
print (result)