- Bool
- Int, UInt
- Float, Double
- Character, String
Bool
true와 false 만을 값으로 가지는 타입
var someBool: Bool = true
someBool = false
print(someBool) // false
Int, UInt
Int
정수 타입, 현재는 기본적으로 64비트 정수형
var someInt: Int = -100
someInt = 100
// someInt = 100.2 오류 발생
UInt
양의 정수 타입, 현재는 기본적으로 64비트 양의 정수형
var someUInt: UInt = 100
// someUInt = -100 오류 발생
Float, Double
Float
실수 타입, 32비트 부동소수형
실수는 정수를 포함하기 때문에 Int 타입의 값을 넣어도 된다.
var someFloat: Float = 5.43
someFloat = 3
Double
실수 타입, 64비트 부동소수형
var someDouble: Double = 5.43333
someDouble = -200
print(someDouble) // -200.0
Character, String
Character
문자타입
유니코드 사용
큰 따옴표(" ") 사용
var someCharacter: Character = "A"
someCharacter = "B"
someCharacter = "C"
print(someCharacter) // C
// someCharacter = "ABC" 오류 발생
String
문자열 타입
유니코드 사용
큰 따옴표 (" ") 사용
문자열 타입의 변수 또는 상수와 문자 타입의 변수 또는 상수는 결합이 안된다.
var someString: String = "ABC"
someString = someString + "DEFG"
print(someString) // ABCEDFG
var someCharacter: Character = "A"
// someString = someString + someCharacter 오류발생
여러 줄의 문자열을 표시하고 싶다면 큰 따옴표 (""" """) 붙인다.
var someString: String = """
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리 나라 만세
"""
단, 시작하는 큰 따옴표 다음 줄부터 끝나는 큰 따옴표 이 전 줄까지 줄 바꿈해야 한다.
var someString: String = """ 동해물과 백두산이
마르고 닳도록 """
// 위에처럼 쓰면 에러 발생
- Any
- AnyObject
- nil
Any
스위프트의 모든 타입을 지칭하는 키워드
var someAny: Any = 100
someAny = "String 타입의 값도 가능합니다."
someAny = 123.432
단, Any 타입에 특정 타입의 값을 넣었다고 하더라도
그 타입만 적용가능한 값에는 할당할 수 없다.
타입을 명시적으로 변환해야지만 연산이 가능하다.
var someDouble: Double = 2.3
someAny = someAny + someDouble // 오류 발생
AnyObject
모든 클래스 타입을 지칭하는 프로토콜
class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
someAnyObject = "가나다라" // 오류 발생
위에서 오류 발생하는 이유는 AnyObject 라는 클래스의 인스턴스만 수용 가능하기 때문에
클래스의인스턴스가 아니면 할당할 수 없다.
nil
없음을 의미하는 키워드
값에 "" (빈공간) 또는 0 과 같은 값을 넣는 것이 아니라
아예 값이 없다는 의미이다.