프로그램 작성 시, 우리는 변수나 상수를 이용해 프로그램에서 사용되는 데이터를 메모리에 임시로 저장한다. 이때 변수와 상수는 특정 데이터 타입에 해당하는 값의 이름이다.
변수와 상수의 차이는 다음과 같다.
스위프트에서 변수를 생성하려면 var 키워드를 사용해야한다.
변수 선언은 다음과 같은 방식으로 선언한다.
var [변수명]: [데이터 타입] = [값]
변수를 생성할 때 테이터 타입은 생략할 수 있다. 이는 컴파일러가 변숫값의 타입을 추론하여 타입을 지정하는 타입 추론 을 진행하기 때문에 가능한 일이다. 타입 추론을 할 경우, 오류 발생 시 오류를 찾는 데 상당한 시간이 걸릴 수도 있으며, 컴파일 시간이 증가할 수 있다. 때문에 타입 지정을 하는 것이 좋다고 볼 수 있다.
var name: String = "nick"
var age: Int = 100
var job = "iOS Developer" // 문자열 타입에 타입 추론 사용
var height = 199.9 // 실수 타입에 타입 추론 사용
var weight: Int = 99
age = 99 // 변수는 값을 변경 가능
job = "writer" // 단, 값은 타입으로 할당해야함.
print("\(type(of: job))") // String
print("\(type(of: height))") // Double
print("name : \(name), age : \(age), job : \(job),
height : \(height), weight : \(weight)")
// name : nick, age : 99, job : writer, height : 199.9, weight : 99
스위프트에서는 let 키워드를 사용해서 상수를 생성한다.
선언 방식은 다음이 변수 선언과 비슷하다.
let [상수명]: [데이터 타입] = [값]
상수 선언도 변수 선언과 마찬가지로 데이터 타입을 생략할 수 있다.
let name: String = "nick"
var age: Int = 99
name = "alex" // 오류 발생
age = 88
print("name : \(name), age : \(age)")