본문 바로가기
iOS/Swift

Swift 자료형(Data Types)

by Dev.Andy 2023. 3. 24.

목차

    머리말

    들어가기 전에

    이전 포스팅 - 상수와 변수(Constants and Variables)

    저번 포스팅에서는 Swift의 상수와 변수에 대해 알아 보았다.

    이번 포스팅

    이번에는 Swift의 다양한 자료형에 대해 알아 보자. 각 자료형의 특징을 살펴 보고 어떠한 문법으로 작성해야 하는지 알아 보자.

    자료형(Data types)

    자료형은 변수(혹은 상수)를 담는 '그릇'이라 할 수 있다.

    자료형은 변수를 담는 '그릇'이다
    자료형은 변수를 담는 '그릇'이다

    같은 음식이라도 어떤 그릇에 담냐에 따라 그 형태가 달라지듯이,

    같은 데이터라도 어떠한 자료형에 담냐에 따라 그 값이 달라진다.

     

    자료형의 종류

    1. 정수(Integers)

    1-1.  Int - 64비트 정수

    var MtHallaSeaLevel: Int = 1950
    
    print("MtHallaSeaLevel: \(MtHallaSeaLevel)") // MtHallaSeaLevel: 1950
    print(type(of: MtHallaSeaLevel)) // Int

    1-2. UInt - 64비트 양의 정수

    var worldPopulation: UInt = 8000000000
    
    print("worldPopulation: \(worldPopulation)") // worldPopulation: 8000000000
    print(type(of: worldPopulation)) // UInt

    2. 부동 소수점 숫자(Float-Point Numbers)

    Float는 소수점 6번째 자리까지의 정확도를 가진 것에 비해,

    Double은 소수점 15번째 자리까지의 정확도를 가진다.

    2-1. Float - 32비트 부동 소수점 숫자

    var piFloat: Float = 3.1415
    
    print("piFloat: \(piFloat)") // piFloat: 3.1415
    print(type(of: piFloat)) // Float

    2-2. Double - 64비트 부동 소수점 숫자

    var latitudeOfSeoul: Double = 37.532600
    
    print("latitudeOfSeoul: \(latitudeOfSeoul)") // latitudeOfSeoul: 37.5326
    print(type(of: latitudeOfSeoul)) // Double

    3. 부울(Boolean)

    참 또는 거짓을 뜻하는 논리적인 자료형이다.

    Swift에서 부울을 나타날 때는 Bool으로 나타낸다.

    let isAppleRed = true
    let isStrawberryBlue = false
    
    print(isAppleRed) // true
    print(type(of: isAppleRed)) // Bool
    print(isStrawberryBlue) // false
    print(type(of: isStrawberryBlue)) // Bool

     

    4. 옵셔널(Optionals)

    옵셔널의 2가지 경우

    값(value)이 모호할 때 옵셔널(optionals)을 사용한다. 옵셔널에는 2가지의 경우가 있다.

    1. 값이 있는 경우. 이 때는 옵셔널을 언래핑(unwrap; 강제 해제)하여 그 값에 접근할 수 있다.
    2. 아예 값이 없는 경우.
    var thisYear = "2023"
    var convertThisYearToInt = Int(thisYear)  // 타입 변환 시 옵셔널 타입으로 변환된다.
    
    print(thisYear) // 2023
    print(type (of: thisYear)) // String
    print(convertThisYearToInt) // Optional(2023)
    print(type (of: convertThisYearToInt)) // Optional<Int>

    옵셔널은 열거형이다? ⭐️

    2023-12-27 (수) 추가

    옵셔널은 사실 열거형이다. 자세한 내용은 아래 링크 참고.

    Swift) 값이 없는 듯 있는 nil의 정체 (feat. 옵셔널은 열거형이다)

    4+. nil

    위의 옵셔널 변수를 설정하여 따로 할당하지 않은 채 선언하면, nil이라는 특수한 값을 할당 받는다.

    nil은 값이 없는 상태를 의미한다.
    var statusCode: Int?
    
    print(statusCode) // nil

    댓글