이번 편의 목표: 바뀌지 않는 값과 바뀌는 값을 나누고, 정수·실수·문자열·불리언을 컴파일러가 구분하게 합니다.
let은 한 번 넣은 값을 유지합니다. var는 이후 다른 값을 넣을 수 있습니다. 타입을 생략하면 처음 넣은 값으로 추론합니다. 추론 결과를 눈에 보이게 하려면 콜론 뒤에 타입을 적습니다.
let dailyFee = 100
var lateDays = 3
let title: String = "개미"
let available: Bool = true
let rate: Double = 0.5
lateDays = 4
print(dailyFee * lateDays)
print(title)
print(available)
print(rate)dailyFee는 Int입니다. 4를 곱하면 400이 출력됩니다. title은 문자열이라 정수와 곱할 수 없습니다. available은 참과 거짓만 담습니다. rate는 Double이라 0.5가 그대로 출력됩니다.
lateDays에 문자열을 넣으면 컴파일이 멈춥니다. 스위프트는 한 변수의 타입을 중간에 바꾸지 않습니다. Int 결과가 그 타입에 들어가지 않는 곱셈은 그 지점에서 실행이 멈춥니다. 연체 일수처럼 범위가 작은 값은 그대로 두고, 더 넓은 범위가 필요하면 Int64처럼 처음부터 그 타입으로 선언합니다.
문자열 안에 값을 넣을 때는 보간을 씁니다. 앞의 파일에서 print 네 줄을 다음 한 줄로 바꿉니다.
print("\(lateDays)일의 연체료는 \(dailyFee * lateDays)원입니다.")역슬래시와 괄호 안의 식이 값으로 바뀝니다. 이 파일에서는 lateDays가 4이므로 4일의 연체료는 400원입니다. 가 출력됩니다.
직접 해 보기
가격 12000을 let으로 두고, 권 수 2를 var로 둔 뒤 둘을 곱해 출력하세요. 권 수를 3으로 바꾼 뒤 다시 곱합니다.
해설
첫 곱은 24000이고 둘째 곱은 36000입니다. 가격은 let이라 12000에서 바뀌지 않고, 권 수만 var로 바뀝니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.