Swift 데이터 타입과 연산자
- 변수와 상수
- 변수 : 처음 값이 대입된 후에 값을 변경할 수 있는 상태를 의미한다.
- 선언 방법 : 'var' 키워드를 이용하여 선언
- 변수 선언과 초기값을 같이 선언
예) var value = 1
- 변수 선언과 초기값을 분리하여 선언 시 반드시 타입 선언을 해야한다.
예) var value : Int
value = 10
- 상수 : 처음 값이 대입된 후에 값을 변경할 수 없는 상태를 의미한다.
- 선언 방법 : 'let' 키워드를 이용하여 선언
예) let value = 1
- 타입 선언과 자주 접하는 에러
- 타입 정보가 있는 경우 타입 선언을 생략할 수 있다.
예) var index = 10 (타입 선언 생략)
- 타입 정보가 없으면 타입 선언을 생략할 수 없다.
예) var index (타입 생략 불가능)
- 변수의 타입과 대입 값의 타입이 다르면 에러가 발생한다.
예) var value1 = 10
value1 = 10.1 (에러발생)
- 서로 다른 타입 간의 연산을 하는 경우 에러가 발생한다.
예) var intNum = 1
var floatNum = 3.14
var test = intNum + floatNum
- 상수로 선언 시에는 변경을 시도하려고 하면 에러가 발생한다.
예) let testNum = 100
testNum = 10
- 기본 데이터 타입
- 부울 : Bool
- 타입 선언 : Bool
- 값 : true, false
- 정수 : Int, UInt
- 타입 선언 : Int, UInt(unsigned int), Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64
- 값 범위
- 각 타입 별 값의 범위 확인하는 방법
- Int : Int.min, Int.max 로 범위를 확인한다.
- UInt : UInt.min, UInt.max 로 범위를 확인한다.
- 실수 : Float, Double
- 타입 선언 : Float, Double(기본타입)
- 값 범위
- 각 타입 별 값의 범위 확인하는 방법
- Float : Float.min, Float.max 로 범위를 확인한다.
- Double : Double.min, Double.max 로 범위를 확인한다.
- 문자, 문자열 : Character, String
- 타입 선언 : Character, String
- 값
- Character : 문자 하나 (문자 하나 이상을 넣으려고 하면 에러가 발생한다.)
- String : 문자열
- 기본 데이터 타입에서 자주 접하는 에러
- 기본 데이터 타입의 범위를 넘어가는 경우 에러가 발생한다.
예) var value : Int8
value = 128 (에러발생, Int8의 범위 : -128 ~ 127)
- 기본 데이터 타입 간 연산 시에 타입이 다른 경우 에러가 발생한다.
- Swift에서는 같은 타입 간 연산만 허용한다.
예) var intVar1 = 1
var intvar2 = 2
var sum = intVar1 + intVar2
- 타입이 다른 연산은 혀용하지 않는다.
예) var intVar = 10
var doubleVar = 3.14
var sum = intVar + doubleVar(에러발생)
- 타입이 다른 연산의 경우는 반드시 같은 타입으로 변환 후에 연산 하도록 한다.
예) var intVar = 10
var doubleVar = 11.11
var sum = intVar + Int(doubleVar)
- 타입 정보 확인하는 방법
- 타입 정보 얻기 : type(of : value)
예) var index = 11
type(of : index) // int
var test = 3.14
type(of : test) // Double
- 연산자
- 산술 연산자
- 산술 이항 연산자 : +, -, *, /, %
- 산술 단항 연산자 : +, -
- 증감 단항 연산자(++, --)는 사용할 수 없고, 대신 +=, -= 복합 대입 연산자를 사용한다.
- 복합 대입 연산자
- 대입 연산자와 다른 연산자를 결합한 형태이다.
- 종류는 아래와 같다.
- 더하기 대입 연산자 : +=
- 빼기 대입 연산자 : -=
- 곱하기 대입 연산자 : *=
- 나누기 대입 연산자 : /=
- 비교 연산자
- 같음 : ==
- 같지 않음 : !=
- A 가 B 보다 크다 : A > B
- A 가 B 보다 작다 : A < B
- A 가 B 보다 크거나 같다 : A >= B
- A 가 B 보다 작거나 같다 : A <= B
- 서로 동일한 주소를 가르키는지 비교 : ===
- 3항 연산자
- 조건값 ? (true expression) : (false expression)
- 범위 연산자
- 닫힌 범위 : 1...10 : 1에서 10까지, 10포함
- 반 닫힌 범위 : 1..<10 : 1에서 9까지
- 논리 연산자
- And 연산자 : &&
- Or 연산자 : ||
- Not 연산자 : !
- nil 연산자
- nil-coalescing 연산자 : ??
- optionalValue ?? defaultValue : optionalValue 값이 nil이 아니면, optionValue를 optionalValue 값이 nil이면, defaultValue를 취한다.