Data types

장수빈·2024년 6월 3일

Swift문법

목록 보기
3/11

Integer

Int

var number: Int = 1

정수를 표현하는 데이터 타입 -2,147,483,648 ~ 2,147,483,647

특정 크기의 정수로 작업해야 하는 경우가 아니라면 항상 코드의 정수 값을 사용할 때 Int 를 사용하십시오. 이것은 코드 일관성과 상호 운용성을 지원합니다.

UInt

var number: UInt = 1

양의 정수만 표현하는 데이터 타입

Float

var interestRate: Float = 1.2345678910

소수점을 표현하는 데이터 타입으로 32비트 부동 소수를 표현할 수 있습니다.
Float의 정밀도는 소수점 이하 6자리까지 가능합니다.

Double

var interestRate: Double = 1.2345678910123456789

소수점을 표현하는 데이터 타입으로 64비트 부동소수를 표현할 수 있습니다.
Double의 정밀도는 소수점 이하 15자리 이상 가능합니다.
두 유형 모두 적합한 상황에서는 Double을 사용하는 것이 좋습니다.


Boolean

Bool

let orangesAreOrange = true
let turnipsAreDelicious = false

참 true와 거짓 false 을 표현할 수 있는 데이터 타입입니다.

Swift의 타입 세이프티는 부울이 아닌 값이 Bool 로 대체되는 것을 방지합니다. 아래 예제는 컴파일 시 에러를 발생합니다:

let i = 1
if i {
    // this example will not compile, and will report an error
}
let turnipsAreDelicious = false

Strings and Characters

String(문자열)

var variableString = "Mom"

문자열 (string) 은 "hello, world" 또는 "albatross" 와 같은 문자의 연속입니다. Swift 문자열은 String 타입으로 표현됩니다.

Character(문자)

var oneLetter: Character = "a"

문자 문자열 리터럴을 Character 타입을 명시하여 단독의 Character 상수 또는 변수를 생성할 수 있습니다.


Tuple

Tuple 은 여러값을 단일 복합 값으로 그룹화 합니다. 튜플안에 값은 어떠한 타입도 가능하며 서로 다른 타입이여도 괜찮습니다.

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

튜플의 내용을 별도의 상수 또는 변수로 분해 (decompose) 하여 평소와 같이 접근할 수 있습니다

let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
// Prints "The status code is 404"
print("The status message is \(statusMessage)")
// Prints "The status message is Not Found"

튜플의 값 중 일부만 필요한 경우 튜플을 분해할 때 밑줄 (_)로 튜플의 일부를 무시할 수 있습니다

let (justTheStatusCode, _) = http404Error
print("The status code is \(justTheStatusCode)")
// Prints "The status code is 404"

또는 0에서 시작하는 인덱스를 사용하여 튜플의 개별 요소 값에 접근할 수 있습니다

print("The status code is \(http404Error.0)")
// Prints "The status code is 404"
print("The status message is \(http404Error.1)")
// Prints "The status message is Not Found"

튜플을 정의할 때 튜플의 요소에 이름을 정할 수 있습니다

let http200Status = (statusCode: 200, description: "OK")

튜플은 관련된 값의 간단한 그룹에 유용합니다. 복잡한 데이터 구조를 생성하는데는 맞지 않습니다. 데이터 구조가 복잡한 경우 튜플이 아닌 클래스 (class) 또는 구조체 (structure)를 사용하십시오

Any

Any 타입은 다른 모든 타입의 값을 포함할 수 있습니다. Any 는 다음 타입의 인스턴스에 대해 구체적인 타입으로 사용될 수 있습니다.

  • 클래스, 구조체, 또는 열거형
  • Int.self 와 같은 메타타입
  • 모든 타입의 구성요소가 있는 튜플
  • 클로저 또는 함수 타입
let mixed: [Any] = ["one", 2, true, (4, 5.3), { () -> Int in return 6 }]

인스턴스에 대해 구체적인 타입으로 Any 를 사용할 때 해당 프로퍼티 또는 메서드에 접근하려면 먼저 알려진 타입으로 인스턴스를 캐스팅 해야 합니다. Any 의 구체적인 타입인 인스턴스는 본래 동적 타입을 유지하고 as, as?, 또는 as! 와 같은 타입 캐스팅 연산자 (type-cast operators) 중 하나를 사용하여 타입을 캐스팅 할 수 있습니다. 예를 들어 as? 을 사용하여 배열의 첫번째 객체를 String 으로 조건부로 다운캐스트 합니다

if let first = mixed.first as? String {
    print("The first item, '\(first)', is a string.")
}
// Prints "The first item, 'one', is a string."
profile
iOS 공부 이모저모 낙서장

0개의 댓글