본 Lecture Note는 yagom.net의 '스위프트 기초' 강의를 수강하고 작성하였습니다.

Swift의 기본 데이터 타입을 알아보겠습니다. 본 포스팅에서는 Bool, Int, UInt, Float, Double, Character, String, Any 타입과 이와 맥이 조금 다른 AnyObjectnil을 다룹니다. Swift는 데이터 타입에 굉장히 엄격한 언어이므로 타입을 정확하게 구분하여 사용할 수 있어야 합니다.

Note: 데이터 타입을 엄격하게 관리함으로써 암시적으로 이루어지는 데이터 타입의 변형으로부터 일어날 수 있는 예기치 않은 결과를 일으키는 경우를 방지할 수 있습니다.

Bool

참(true), 거짓(false)을 표현하기 위한 타입입니다.

var someBool: Bool = false
someBool = 100	// 에러 발생! Bool 타입에 정수를 할당할 수 없습니다.

Int

정수형 타입입니다. 기본적으로 64비트 정수형 타입을 사용합니다. 대략 -922 ~ 922경까지의 정수를 다룰 수 있습니다.

var someInt: Int = 100

UInt

부호가 없는 정수 (Unsigned Integer)입니다. 대략 0 ~ 1844 경까지의 0과 양의 정수를 다룰 수 있습니다.

var someUInt: Int = 100
var someInt: Int = 1
someUInt = someInt	// 에러 발생! 같은 정수라도 타입이 다르므로 값을 할당할 수 없습니다.

Float

32비트 부동소수형 타입입니다.

var someFloat: Float = 3.14
someFloat = 1	// 소숫점을 기재하지 않아도 할당이 가능합니다.

Double

64비트 부동소수형 타입입니다.

var someDouble: Double = 3.14
var someFloat: Float = 3.14
someDouble = 3	// Float과 마찬가지로 소숫점을 기재하지 않아도 할당이 가능합니다.
someDouble = someFloat	// 에러 발생! 다른 타입이므로 할당이 불가능합니다.

Character

한 글자(문자)를 표현하기 위한 타입입니다. 값을 큰 따옴표로 감싸 표현합니다. Unicode를 사용하기 때문에 Unicode로 표현 가능한 모든 문자를 할당할 수 있습니다.

var someCharacter: Character = "😆"
someCharacter = "🐣"
someCharacter = "가"
someCharacter = "Ryan"	// 에러 발생! 한 문자가 아닌 String 타입이므로 할당이 불가능합니다.

String

Character 타입과 달리 여러 문자를 표현할 수 있습니다. Character 타입과 마찬가지로 큰 따옴표로 값을 감싸 표현합니다.

var someString: String = "하하하! 😄"
someString = someString + "웃으면 복이 와요."	// 연산자를 통해 문자열을 합칠 수 있습니다.
var someCharacter: Character = "😆"
someString = someCharacter	// 에러 발생! 다른 타입이므로 할당할 수 없습니다.

Any

Swift의 모든 타입을 지칭하는 키워드입니다.

var someAny: Any = 100
someAny = "😆"
someAny = 2.1332
someAny = "어떤 타입도 수용 가능합니다."

let someDouble: Double = 3.141592
someDouble = someAny	// 에러 발생! 타입이 다르므로 할당할 수 없습니다.
someAny = someDouble	// Any 타입이므로 할당할 수 있습니다.

AnyObject

모든 클래스 타입을 지칭하는 프로토콜입니다.

class SomeClass {}

var someAnyObject: AnyObject = SomeClass()

someAnyObject = 123.12	// 에러 발생!

nil

엄밀히 이야기하면 타입이 아닙니다. 존재하지 않음을 나타내는 키워드입니다. 타 언어의 Null을 뜻하는 키워드입니다.

var someAny: Any = nil	// 에러 발생! 어떤 데이터 타입이든 할당할 수 있지만 값이 없는 nil은 할당할 수 없습니다.
var someAnyObject = nil	// 에러 발생!

다음 포스팅에서는 데이터 타입 중 컬렉션 타입에 대해 알아보도록 하겠습니다.

profile
합리적인 해법 찾기를 좋아합니다.

0개의 댓글