Swift Language를 깊게 이해해보자!
Swift
- 안전하고 빠른 프로그래밍 언어
- 현대 언어 사고방식과 오픈소스 커뮤니티의 지혜를 결합한 언어
- Scripting언어와 유사한 산업용 품질의 프로그래밍 언어
- 컴파일러는 선능에 최적화 되어있고, Swift 언어는 개발에 최적화 되어있음
Swift의 프로그래밍 오류
Swift는 최신 프로그래밍 패턴을 채택하여 다량의 class들에 대한 프로그래밍 오류를 정의
- 변수는 사용 전 초기화 되어야 함
- Array(배열)의 인덱스 범위 초과 시 에러를 확인해야 함
- Int(정수)는 overflow를 확인해야 함 - Integer overflow
overflow란 단어 그대로 '과다' 상태에 대한 에러
Int가 지원가능한 범위의 수를 넘은 경우 정의되지 않은 동작을 초래하게 됨
이에 Swift는 Basic Operators와 Advanced Operators를 지원함
- Optional은 nil값이 명시적으로 처리되어야 함
- 메모리는 자동으로 관리됨
- Error Handling을 통해 예기치않은 실패를 컨트롤할 수 있음
Swift의 특징
- Syntax와 Standard Library는 작성된 코드가 최상의 성능을 발휘해야 한다는 기본 원칙에 따라 설계됨
- 안정성과 속도는 Swift의 강점
- Type Inference(타입추론)과 Pattern Matching(패턴 매칭)으로 복잡한 개념을 명확하고 간결한 방식으로 표현가능하게 함
- 또한 이를 통해 유지보수가 쉬워짐
Swift는 Statically Typed Language, 즉 모든 프로퍼티의 타입이 컴파일 타임에 지정되어야 함
이때 컴파일러가 타입을 알 수 있는 방법에는 Type Inference(타입추론)과 Type Annotation(타입기재)이 있음
Type Inference(타입추론)
- Swift의 특징인 설계에 의한 안정성을 뒷받침하는 역할을 함
- Type Annotation(타입기재)와 달리 원하는 타입으로 추론되지 않을 수 있다는 단점이 존재
- 초기값이 없는 경우 타입을 유추할 수 없다는 문제점이 존재
Type Annotation(타입기재)
- 직접 자료형을 지정하는 것
- Type Inference(타입추론)이 어려운 경우 사용됨
- Type Inference(타입추론)보다 속도가 빠름
Pattern Matching(패턴 매칭)
종류
- Wildcard Pattern
- Identifier Pattern
- Value-Binding Pattern
- Tuple Pattern
- Enum-case Pattern
- Optional Pattern
- Type-casting Pattern
- Expressiong Pattern
참고 링크
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/aboutswift
https://www.swiftbysundell.com/basics/type-inference/
728x90
'Swift Language' 카테고리의 다른 글
A Swift Tour(2) (0) | 2024.02.14 |
---|---|
A Swift Tour (1) (0) | 2024.01.25 |
Version Compatibility (0) | 2024.01.24 |