//let 이름: 타입 = 값
let year: int = 2021
//var 이름: 타입 = 값
var year: int = 2021
var year = 2021 // 2021이라는 값이 int라는 것을 유추할 수 있을 때
type(of: year) // year의 type 확인
위와 같이 선언과 동시에 초기값을 설정하지 않고
나중에 값을 할당하려는 변수에는 타입을 반드시 명시해주어야 한다.
상수는 선언 후 첫 할당(초기값)만 가능하다.
초기값을 선언한 후에는 절대 값을 변경할 수 없다.
let total: int
let num1: int = 15
let num2: int = 20
total = num1 + num2
Bool
true 와 false 의 논리의 값을 갖는다.
자바에서는 0 또는 1로 true 와 false 를 값을 나타낼 수 있지만 스위프트에서는 0 또는 1 은 정수(int)의 값이므로 사용할 수 없다.
Int
양수, 음수 등의 정수 값을 갖는다.
UInt
부호가 없는(양수) 정수의 값을 갖는다.
UInt = int //오류
==> UInt 는 UInt의 값을 갖으므로 Int의 값을 담을 수 없다.
Float
32bit의 소수의 값을 갖는다.
(float는 정수의 값도 가질 수 있다.)
Double
64bit의 소수의 값을 갖는다.
Float와 동일하게 소수의 값을 나타내지만 double 에 float를 담을 수 없다.
var a: float = 3.14
double = a //오류
Character
한 글자의 문자만 담을 수 있다.
유니코드를 사용하며 큰 따음표[""] 로 표현한다.
String
문자열의 값을 갖는다.
(+)의 연산기호를 사용하여 동일한 String 형태의 문자열을 붙일 수 있다.
String에 Character 를 담을 수 없다.
var gender: Character = "남"
var name: String = "홍길동"
var member: String = name + gender //오류
Any
모든 타입을 지칭한다.
하지만 double 에 any 타입을 할당할 수는 없다.
AnyObject
모든 클래스 타입을 지칭하는 프로토콜
nil
null 을 의미한다.