전체 글 130

Structures and Classes

구조체와 클래스는 프로퍼티와 메서드를 한 번에 다를 수 있는 구조를 가진다. 다른 언어와 달리, 스위프트는 구조체나 클래스를 만들기 위해 인터페이스나 파일을 생성할 필요가 없다. 하나의 파일에 구조체와 클래스를 정의하면 외부 인터페이스에서 해당 클래스 또는 구조체를 자동으로 이용할 수 있도록 한다. Compaing Structures and Classes 구조체와 클래스의 공통점 값을 저장하는 프로퍼티 정의 기능 제공을 위한 메서드 정의 subscript를 사용해 값에 접근할 수 있도록 subscript 정의 init 메서드를 통해 초기 값 설정 추가적인 기능을 위해 확장 가능 프로토콜 준수를 통한 특정 표준 기능 제공 클래스 다른 클래스의 특성 상속 가능 Type Casting을 통해 런타임에 클래스 ..

Swift 공식 문서 2023.12.23

Enumerations

열거형은 연관된 값들을 모아 놓은 것을 말한다. C언어에서의 열거형과 비슷하게 각각의 값에 Int 타입을 줄 수 있다. 스위프트의 열거형은 더 융통성이 있어서 각 case에 꼭 값을 제공할 필요가 없다. Raw value라고 알려진 각 case의 값은 String, Character, Integer, Float, Double 등 일 수 있다. 스위프트에서 열거형은 일급 객체이다. 클래스만이 제공하는 많은 특징들을 허용한다. 예를 들어, 열거형의 현재 값에 대한 추가적인 정보를 제공하기 위한 계산 프로퍼티, 그리고 열거형이 나타내는 값들과 관련된 기능을 제공하는 인스턴스 메서드를 제공한다. Initial case 값을 제공하기 위한 생성자 또한 정의가 가능하고, 원래 구현된 기능 확장도 가능하다. 그리고,..

Swift 공식 문서 2023.12.21

Closures

함수를 정의하지 않고 실행되는 그룹 코드 클로저는 코드에서 사용할 수 있고 전달할 수 있는 독립된 기능 블록이다. C와 Objective-C 같은 다른 언어들에서의 lambda 표현식과 비슷하다. 클로저가 정의된 범위 안에서 어떤 상수와 변수에 대한 참조를 캡처하고 저장할 수 있다. Swift에서는 해당 변수와 상수들을 잠근다고 표현한다. 이렇게 Capturing에 대한 모든 메모리 관리를 직접 처리한다. 전역 함수 또는 중첩 함수 또한 특수한 클로저 중 하나이다. 클로저는 세 가지 형태 중 하나를 가진다. 전역 함수는 이름은 있지만 어떠한 값도 capturing 하지 않는 클로저이다. 중첩 함수는 이름이 있으며 자신을 둘러싼 범위 내에서의 함숫값을 capturing 하는 클로저이다. 클로저 표현식은 주..

Swift 공식 문서 2023.12.20

Control Flow

Swift는 while, if, guard, and switch 등 여러 가지 제어 흐름 구문을 제공한다. break와 continue를 통해 코드 실행 흐름을 옮길 수 있다. Swift는 arrays, dictionaries, ranges, strings 등을 쉽게 다루기 위해 for-in loop를 제공한다. Swift는 defer라는 구문도 제공한다. 함수 내에서 작성 위치와 상관없이 함수 종료 직전 맨 마지막에 실행되는 구문이다. 여러 번 호출 가능하고 중첩해서 사용할 수 있다. 먼저 읽은 defer부터 스택에 쌓이는 구조로 가장 마지막에 읽은 defer가 가장 먼저 실행되고 가장 먼저 읽은 defer가 가장 마지막에 실행되는 역순으로 실행된다. Swift의 switch는 튜플, 특정 타입에 대한..

Swift 공식 문서 2023.12.17

Collection Types

Swift는 Collection Types으로 Array(배열), Set(집합), Dictionary(딕셔너리) 세 가지 유형을 제공한다. Array는 값이 순서대로 정렬되어 저장되고, Set는 중복되지 않는 값들이 정렬되지 않게 저장되고, Dictionary는 Key-Value 형태로 정렬되지 않은 Collection Type이다. Swift의 Array, Set, Dictionary에 저장되는 값들은 명확한 자료형을 가지고 있어야 한다. 예를 들어, Int형을 저장하는 Array에 String을 저장하려고 하면 오류가 발생한다. Mutability of Collections Array, Set, Dictionary를 만들어 변수에 할당하면 그 컬렉션은 mutable 하다. 즉, 값을 추가/제거/변경할..

Swift 공식 문서 2023.12.15