
변수는 값을 변하도록 수정할 수 있는 저장공간이다.
상수는 값이 변하지 않는 고정된 값이다.
변수와 상수는 사용하기 전에 반드시 선언이 되어야 한다.
변수는 var 키워드와 함께 선언하고 상수는 let 키워드와 함께 선언한다.
- 변수 선언 방법
var constant: String = "차후에 변경이 가능한 변수 var" // var 변수이름 : 타입 = 값
- 상수 선언 방법
let constant: String = "차후에 변경이 불가능한 상수 let" // let 변수이름 : 타입 = 값
여러개의 상수 또는 여러개의 변수를 선언할 때 콤마로 구분하여 한줄로 선언이 가능하다.
let x1 = 0.0, y1 = 0.0, z1 = 0.0 var x2 = 0.0, y2 = 0.0, z2 = 0.0
상수 또는 변수를 선언할 때 저장할 수 있는 값의 종류를 명확하게 하기위해 타입 명시를 사용한다.
welcomeMessage라는 변수에String값을 저장할 수 있는 변수를 나타내는 타입 명시를 제공var welcomeMessage: String"선언한 변수는
welcomeMessage라고 하며 이것의 타입은String이다."
상수와 변수 이름은 아래 코드와 같이 대부분의 문자를 포함할 수 있다.
let n = 3.14159 //알파벳 let 你好 = "你好世界" //한자 let 🐶🐮 = "dogcow" //유니코드불가능 한 것
공백, 수학적 기호, 화살표, 내부에서 사용하는 유니코드 스칼라 값, 또는 선과 박스를 그리는 문자를 포함할 수 없다.숫자로 시작하는 이름은 선언할 수 없다.- 특정 타입으로 상수 또는 변수를 선언하면 동일한 이름으로
다시 선언하거나 다른 타입의 값을 저장하도록변경하여 선언할 수 없다.- 상수를 변수로 바꾸거나 변수를 상수로 바꿀 수도 없다.
- Swift 키워드와 동일한 이름의 상수 또는 변수를 제공해야 한다면 이름을 백틱 (`)으로 묶어야 한다.
동일한 타입의 다른 값으로 이미 선언된 변수 값을 변경할 수 있다.
변수는 변경 가능 !
friendlyWelcome값"Hello!"에서"Bonjour!"로 변경var friendlyWelcome = "Hello!" friendlyWelcome = "Bonjour!" // friendlyWelcome is now "Bonjour!"
변수와 달리 상수 값은 지정된 이후에는 변경할 수 없다.
값을 변경하려고 하면 코드가 컴파일 될 때 오류가 발생한다.
상수는 변경 불가능!let languageName = "Swift" languageName = "Swift++" // This is a compile-time error: languageName cannot be changed.
print() 함수로 상수 또는 변수의 현재 값을 출력할 수 있다.
print(friendlyWelcome) // Prints "Bonjour!"
Swift는 긴 문자열에 상수 또는 변수의 이름을 포함하기 위해 문자열 삽입 (String interpolation)을 사용한다.
이름을 소괄호로 감싸고 여는 소괄호 전에 역슬래시를 추가해야 한다.print("The current value of friendlyWelcome is \(friendlyWelcome)") // Prints "The current value of friendlyWelcome is Bonjour!"
Swift에서는 상수를 많이 사용한다.
변수를 사용해도 되지만 상수 사용에는 아래와 같은 두가지 장점이 있기 때문이다.
1. 실수로 값을 변경하는 일이 없다.
(실수로 변경된 경우 컴파일 오류가 나므로 컴파일시점에 알아차릴 수 있다.)
2. 컴파일러가 별도의 최적화를 진행하여 실행속도가 빨라진다.
+상수로 선언한 것의 값을 변경해야한다면 let ➜ var로만 변경하면 상수를 변수로 바꿀 수 있다.