본문 바로가기
Swift/기본

기본 데이터 타입

by 밤새는탐험가 2024. 3. 21.
  • 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 과 같은 값을 넣는 것이 아니라

아예 값이 없다는 의미이다. 

 

'Swift > 기본' 카테고리의 다른 글

함수  (0) 2024.03.22
컬렉션 타입  (0) 2024.03.21
상수, 변수  (0) 2024.03.21
클로저 - @autoclosure  (0) 2024.03.20
클로저  (0) 2024.03.20