본문 바로가기

Swift 문서 탐방

[Swift 문서 탐방] Swift 기본 타입(작성중)

Swift 언어에는 기본적으로 Int, Double, Bool, String의 기본 타입과 Array, Set, DictionaryCollection Type을 가지고 있습니다. 여기에 여러 타입의 데이터를 한대 묶어주는 Tuple이라는 데이터 타입도 존재합니다.

 

Swift 언어는 Optional 타입도 가지고 있습니다. 이는 값의 부재 여부를 다루며, 값이 있는지 없는지에 대한 값을 나타내 줍니다.

 

Swift는 Type-Safe한 언어기도 합니다. 여기서 Type-Safe한 언어라는 의미는 코드에서 사용할 수 있는 값의 유형을 명확하게 알 수 있다는 것입니다. 예를 들어, String 타입이 저장되어야 할 변수 A에 Int 타입을 저장할 수 없고, 만약 실수로 할당을 시도했다면 컴파일러가 오류를 나타내 줄 것입니다.

Integers

Swift 언어에서는 Signed(positive, zero, or negative) Interger와 Unsigned(positive or zero) Integer를 지원합니다.

여기에 Swift 언어는 8, 16, 32, 64 bit별 Signed/Unsigned Interger 타입을 제공합니다. 예를 들어, 8-bit unsigned integer의 경우 UInt8 타입이, 32-bit signend integer의 경우 Int32 타입이 존재합니다.

Integer Bounds

Integer 최소값과 최대값은 각 Integer 타입의 minmax 프로퍼티를 통해 접근할 수 있습니다.

let minValue = UInt8.min  // minValue is equal to 0, and is of type UInt8
let maxValue = UInt8.max  // maxValue is equal to 255, and is of type UInt8

Int

Swift 언어에는 현재 플랫폼에 기본 워드(word) 크기와 동일한 Int라는 기본 타입이 존재합니다. 

  • 32-bit 플랫폼에서는 Int는 Int32와 동일
  • 64-bit 플랫폼에서는 Int는 Int64와 동일

UInt

Int타입과 마찬가지로 현재 속한 플랫폼의 기본 워드(word) 크기만큼 차지한다.

  • 32-bit 플랫폼에서는 Int는 UInt32와 동일
  • 64-bit 플랫폼에서는 Int는 UInt64와 동일

Floating-Point Numbers

Floating-Point Numbers은 Int 타입보다 훨씬 더 광범위한 값을 표현할 수 있으며, Int에 저장할 수 있는 것보다 훨씬 크거나 작은 숫자를 저장할 수 있습니다. Swift는 두 가지 부호 있는 Floating-Point Numbers 타입을 제공합니다.

  • Double은 64비트 Floating-Point Numbers를 나타냄
  • Float은 32비트 Floating-Point Numbers를 나타냄
Note
Double
은 적어도 소수점 15자리의 정확도를 가진 반면 Float는 소수점 6자리의 정확도를 가지고 있습니다. 상황에 따라 사용 타입은 다르겠지만 Double과 Float 모두 적합한 상황에선 주로 Double이 더 선호됩니다.

Booleans

Swift 언어에서 Bool 타입은 Constant 값인 truefalse를 제공합니다.

 

Bool 타입은 조건문과 주로 함께 사용될 때 유용합니다.

if turnipsAreDelicious {
    print("Mmm, tasty turnips!")
} else {
    print("Eww, turnips are horrible.")
}
// Prints "Eww, turnips are horrible."

Tuple

Tuple은 여러 타입의 값을 단일 복합 값으로 그룹화한 타입입니다. 튜플 내의 값은 어떤 유형이든 될 수 있으며 서로 같은 유형일 필요는 없습니다.

let http404Error = (404, "Not Found")
// http404Error is of type (Int, String), and equals (404, "Not Found")

 

Tuple은 내용을 별도의 상수나 변수로 분해할 수 있습니다.

let (statusCode, statusMessage) = http404Error

 

특히, Tuple은 함수에서 여러 타입을 한꺼번에 반환하고 싶을 때 유용하게 사용될 수 있습니다.

func minMax(array: [Int]) -> (min: Int, max: Int) {
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

 

 

참고 사이트

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/thebasics (Swift 공식문서 - The Basics)