728x90
반응형
Swift Type
- Swift는 root가 없다
$noRoot
- Swift는 특별한 root 타입이 없다
- Java, Objective-c 등 정적 타입 언어는 root 타입을 갖는다.
Java
Objective-c
Swift
Java, Objective-c 모두 프로토콜을 따르며 Swift는 Int가 자신 자체의 타입이며 구조체로 다신의 타입을 정의한다
Swift에서는 모든 것이 상속없이 구조체이다
각 타입 간의 커플링을 느슨하게 처리
전체 타입 시스템에서 확장성 up
클린 아키텍쳐 설계 가능
명명된 타입(Named Type) : 사용할 때 이름을 붙이는 것
- Class
- Struct
- Enum
- Protocol
복합 타입(Compound Type) : 이름이 없는 타입
-
Tuple
var tuples = (x: "123", y: "456") print(tuples.x + "==" + tuples.0) // tuple의 매개변수 이름으로 접근하거나 .0 / .1 로 접근할 수 있다 tuples = ("10", "20") // 매개변수가 없어도 가능하다
- tuple 타입은 이름이 없지만 이름을 붙일 수 있다.
typealias
이용
typealias xcode = (String, String) var tuples2 = xcode("123", "456")
- tuple 타입은 이름이 없지만 이름을 붙일 수 있다.
Function
(Int) -> Int
Optional
안전하게 코딩할 수 있게 도와준다
Declaration
enum Optional<Wrapped>
옵셔널로 설정된 값은 값이 있을 수도, 없을 수도 있다.
옵셔널을 강제로 해제하기 위해 강제 언래핑
을 할 수 있다.
/// Optional 타입으로 변수 생성 var optionalVariable: Int? print(optionalVariable) // Optional("") /// 강제 언래핑 수행 (!) /// 값이 없는데 강제 언래핑을 처리했기 때문에 에러가 발생한다. print(optionalVariable!) // nil error
강제 언래핑 대신 if let
이나 guard
문법을 사용하면 안전한 코딩이 가능해진다.
출처 : https://academy.realm.io/kr/posts/altconf-2017-manu-rink-secret-life-of-types-in-swift/
반응형
'Programming > Swift' 카테고리의 다른 글
[Swift] Swift Any, AnyObject 차이 알아보기 (0) | 2019.06.12 |
---|---|
[Swift] Swift 언어의 특징 - 강한 타입 (0) | 2019.06.11 |
[Swift4.2] Swift로 함수형 프로그래밍 시작하기 - Pure Function (0) | 2019.02.15 |
[iOS/Swift] Initialization (0) | 2018.12.13 |
[Swift] Switch 표현식 (0) | 2018.10.20 |