소피it블로그
[Swift 공식문서] The Basics 정리 (6) - Type Aliases, Booleans, Tuples 본문
개발_iOS/스위프트
[Swift 공식문서] The Basics 정리 (6) - Type Aliases, Booleans, Tuples
sophie_l 2022. 5. 12. 10:30https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
1. Type Aliases
- typealias 키워드를 사용하여 이미 존재하는 타입 명에 별칭을 붙여주는 것이다.
- 맥락상 더 적절한 이름을 붙여주기 위해 사용함
- 정의해준 후에는 본래의 타입 명을 사용하는 부분에서 alias를 대신 사용할 수 있다.
2. Booleans
- 스위프트는 Bool이라는 이름으로 boolean values를 제공하는데, 이는 반드시 true 혹은 false 둘 중 하나의 값을 갖는다.
- 특정 상수나 변수를 true 혹은 false로 지정해주었다면 따로 타입을 명시하지 않아도 된다. 스위프트가 제공하는 타입 추론 기능 덕분.
- if문과 같은 조건절에서 사용하기 유용하다.
- if문에서 불리언 값이 아닌 값을 불리언처럼 사용하면 오류가 난다. 스위프트의 타입 세이프티 때문.
let i = 1
if i {
// this example will not compile, and will report an error
}
let i = 1
if i == 1 {
// this example will compile successfully
}
// 후자의 코드가 작동하는 이유는 if i == 1이라는 비교가 Bool 타입이기 때문
3. Tuples
- 여러 값들을 () 안에 하나로 묶은 값이며, 튜플 안의 값들은 어느 타입이든 상관 없다. 또한 서로 같은 타입일 필요도 없다.
- 튜플 내의 값들을 분해할 수도 있다.
let http404Error = (404, "Not Found")
// http404Error is of type (Int, String), and equals (404, "Not Found")
// 분해
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"
- 인덱스 숫자로도 접근할 수 있다.
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")
print("The status code is \(http200Status.statusCode)")
// Prints "The status code is 200"
print("The status message is \(http200Status.description)")
// Prints "The status message is OK"
- 튜플은 특히 함수의 리턴값으로 쓰기에 용이하다. 하나의 타입으로 된 하나의 값만 리턴할 때에 비해 여러 타입의 값들을 묶어서 리턴하면 더 많은 정보를 제공할 수 있기 때문이다.
- 너무 복잡한 데이터 구조에는 적합하지 않다. 그럴 경우에는 class나 struct로 선언할 것
'개발_iOS > 스위프트' 카테고리의 다른 글
[Swift 공식문서] The Basics 정리 (8) - Error Handling (0) | 2022.05.14 |
---|---|
[Swift 공식문서] The Basics 정리 (7) - Optionals (0) | 2022.05.14 |
[Swift 공식문서] The Basics 정리 (5) - Numeric Literals, Numeric Type Conversion (0) | 2022.05.12 |
[Swift 공식문서] The Basics 정리 (4) - Type Safety and Type Inference 타입 세이프티와 타입 추론 (0) | 2022.05.10 |
[Swift 공식문서] The Basics 정리 (3) - Integers, Floating-Point Numbers 정수, 실수 (0) | 2022.05.10 |