본문 바로가기

Swift Language

About Swift

Swift Language를 깊게 이해해보자!

 

Swift

안전하고 빠른 프로그래밍 언어

- 현대 언어 사고방식과 오픈소스 커뮤니티의 지혜를 결합한 언어

- Scripting언어와 유사한 산업용 품질의 프로그래밍 언어

- 컴파일러는 선능에 최적화 되어있고, Swift 언어는 개발에 최적화 되어있음

Swift의 프로그래밍 오류

Swift는 최신 프로그래밍 패턴을 채택하여 다량의 class들에 대한 프로그래밍 오류를 정의

- 변수는 사용 전 초기화 되어야 함

- Array(배열)의 인덱스 범위 초과 시 에러를 확인해야 함

- Int(정수)는 overflow를 확인해야 함 - Integer overflow

overflow란 단어 그대로 '과다' 상태에 대한 에러
Int가 지원가능한 범위의 수를 넘은 경우 정의되지 않은 동작을 초래하게 됨
이에 Swift는 Basic OperatorsAdvanced 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