Swift는 iOS, macOS, watchOS, tcOS를 만들기 위한 새로운 프로그래밍 언어입니다. 기초적인 자료형으로는 Int, Double, Float, Bool, String, Array, Set, Dictionary가 있습니다. Swift는 값을 저장하고 참
Operators(연산자)는 값을 확인, 변경 또는 결합하는 데 사용하는 특수 기호 또는 Phrase이다. 예를 들어 + 연산자나 && 연산자가 있다.Swift는 C언어 연산자의 여러 코딩 오류를 제거하기 위해 기능을 향상시킨 연산자를 지원한다. = 연산자는 갑승ㄹ 반
String(문자열)은 "Hello World"와 같이 Character(문자)들이 합쳐진 것이라고 불 수 있다.Swift에서 문자열 및 문자 타입은 코드에서 텍스트를 유니코드 호환 방법으로 제공하고 문법적인 부분은 C와 비슷하다. 문자열의 연결 + 연사자를 사용하여
Swift는 콜렉션의 값을 저장하기 위한 배열(array), 집합(set), 딕셔너리(dictionary)와 같은 3개의 원시적인 콜렉션 타입(collection types)을 제공합니다. 배열은 콜렉션 값에 순서를 가지고 있습니다. 집합은 반복되지 않은 값에 순서가
Swift는 다양한 제어 흐름(control flow)구문을 제공합니다. 이것은 여러번 작업을 수행하는 while 루프를 포함하고 조건에 따라 다르게 실행되는 if, guard, switch 구문과 코드에서 다른 포인트로 실행 플로우를 전달하는 break 와 conti
함수(Functions)는 특정 작업을 수행하는 코드 모음 형태입니다. 무슨 동작을 하는지 함수에 특정 이름을 줄 수 있으며 필요할 때 작업을 수행하기 위해 함수를 "호출"할 때 사용됩니다.Swift의 통합 함수 구문은 파라미터 이름이 없는 단순한 C 스타일 함수에서
명명된 함수 생성없이 실행되는 코드 그룹입니다.클로저(closure)는 코드에서 주변에 전달과 사용할 수 있는 자체 포함된 함수 블럭입니다. Swift의 클로저는 C와 Objective-C에서 블럭과 다른 프로그래밍 언어에서 람다와 유사합니다. 클로저는 정의된 컨텍스트
스위프트의 모든 데이터 타입 이름은 첫 글자가 대문자로 시작하는 대문자 카멜케이스르 사용합니다.정수 타입입니다. Int는 +,- 부호르 포함한 정수르 뜻하며 이 주 - 부호르 포함하지 않는 0을 포함한 양의 정수는 UInt로 표현합니다.Bool은 불리언 타입입니다. 불
스위프트의 특징 중 안전성이 가장 뚜렷하게 나타나는 부분입니다.스위프트는 타입에 굉장히 민감하고 엄격합니다. 서로 다른 타입끼리의 데이터 교환은 꼭 타입캐스팅을 거쳐야 합니다.스위프트는 데이터 타입을 안심하고 사용할 수 있는 언어입니다.스위프트에서는 변수나 상수를 선언
조건문에서는 if 구문과 switch 구문, guard 구문이 있습니다.if 구문은 대표적인 조건문으로 if,else 등의 키워드를 사용하여 구현할 수 있습니다. 정수, 실수 등 0이 아닌 모든 값을 참으로 취급하여 조건 값이 될 수 있었던 다른 언어와는 달리 스위프트
기존 클래스, 구조체, 열거형 타입에 새로운 Property, Method, Initializer 등을 추가하는 것으로, 원본 타입(소스코드)에 접근하지 못하는 타입들도 확장해서 사용할 수 있다. extension이란 키워드를 사용하여 확장한다.이렇게 extension
리스트의 가능한 값으로 정의한 사용자 정의 타입을 모델링합니다.열거형(enumeration)은 관련된 값의 그룹을 위한 일반 타입을 정의하고 코드에서 타입-세이프 방법으로 값을 동작하게 합니다.Swift에서의 열거형은 훨씬 유연하고 열거형의 각 케이스에 값을 제공하지
데이터를 캡슐화하는 사용자 정의 타입을 모델링합니다.구조체(Structures)와 클래스(Classes)는 프로그램 코드의 구성 요소가 되는 범용의 유연한 구조입니다. 상수, 변수, 그리고 함수를 정의하는 것과 같은 구문을 사용하여 구조체와 클래스에 프로퍼티와 메서드를
인스턴스 또는 타입의 부분인 저장된 값과 계산된 값에 접근합ㄴ디ㅏ.프로퍼티는 값을 특정 클래스, 구조체, 또는 열거형을 연결합니다. 저장된 프로퍼티는 인스턴스의 일부로 상수와 변수 값을 저장하는 반면에 계산된 프로퍼티는 값을 저장하는 대신에 계산합니다. 계산된 프로퍼티
인스턴스 또는 타입의 부분인 함수를 정의하고 호출합니다.메서드(Method)는 특정 타입과 연관된 함수입니다. 클래스, 구조체, 그리고 열거형은 주어진 타입의 인스턴스 동작을 위한 특정 작업과 기능을 캡슐화하는 인스턴스 메서드를 정의할 수 있습니다. 클래스, 구조체,
콜렉션의 요소에 접근합니다.클래스, 구조체, 그리고 열거형은 콜렉션, 리스트, 또는 시퀀스의 멤버 요소에 접근할 수 있는 단축키인 서브 스크립트를 정의할 수 있습니다. 설정과 검색을 위한 별도의 메서드 없이 인덱스로 값을 설정하고 조회하기 위해 서브 스크립트를 사용합니
기능을 추가 또는 재정의 하기 위한 하위 클래스 입니다.클래스는 다른 클래스에서 메서드, 프로퍼티, 그리고 다른 특성을 상속(Inherit)할 수 있습니다. 클래스가 다른 클래스로 부터 상속될 때 상속하는 클래스를 하위 클래스(subclass)라 하고 상속된 클래스를
타입의 저장된 프로퍼티에 초기값을 설정하고 초기 설정을 수행합니다.초기화(Initialization)는 인스턴스의 클래스, 구조체, 또는 열거형을 사용하기 위해 준비하는 단계입니다. 이 단계에서는 인스턴스에 각 저장된 프로퍼티에 초기값을 설정하고 새로운 인스턴스가 사용
정리가 필요한 리소스를 해제합니다.초기화 해제 구문(deinitializer)는 클래스 인스턴스가 할당 해제되기 직전에 호출됩니다. 초기화 구문은 init 키워드로 작성하는 것과 유사하게 초기화 해제는 deinit 키워드로 작성합니다. 초기화 해제는 클래스 타입에서만
언래핑 없이 옵셔널 값의 멤버에 접근합니다.옵셔널 체이닝(Optional chaining)은 현재 nil 일 수 있는 옵셔널 인 프로퍼티, 메서드, 그리고 서브 스크립트를 조회하고 호출하기 위한 프로세스 입니다. 옵셔널에 값이 포함되어 있으면 프로퍼티, 메서드, 또는
에러에 응답하고 복구합니다.에러 처리(Error Handling)는 프로그램의 에러 조건에서 응답하고 복구하는 프로세스 입니다. Swift는 런타임에 복구 가능한 에러를 던지고 포착하고 전파하고 조작하기 위한 최고 수준의 지원을 제공합니다.일부 작업은 항상 실행을 완료
비동기 동작을 수행합니다.Swift는 구조화된 방식으로 비동기(asynchronous)와 병렬(parallel)코드 작성을 지원합니다. 비동기 코드(Asynchronous code)는 일시적으로 중단되었다가 다시 실행할 수 있지만 한번에 프로그램의 한 부분만 실행됩니다
값의 런타임 타입을 정하고 타입의 정보를 제공합니다.타입 캐스팅(Type casting)은 인스턴스의 타입을 확인하거나 해당 인스턴스를 자체 클래스 계층 구조의 다른 곳에서 다른 상위 클래스 또는 하위 클래스로써 취급하는 방법입니다.Swift에서 타입 캐스팅은 is와
기존 타입에 기능을 추가합니다.확장(Extension)은 기존의 클래스, 구조체, 열거형, 또는 프로토콜 타입에 새로운 기능을 추가합니다. 이것은 기존 소스 코드에 접근 권한이 없는 타입을 확장하는 기능이 포함됩니다.확장은 Objective-C의 카테고리와 유사합니다.
준수하는 타입이 구현해야 하는 요구사항을 정의합니다.프로토콜은 메서드, 프로퍼티, 그리고 특정 작업이나 기능의 부분이 적합한 다른 요구사항의 청사진을 정의합니다. 프로토콜은 요구사항의 구현을 제공하기 위해 클래스, 구조체, 또는 열거형에 의해 채택될 수 있습니다. 프로
여러 타입에 대한 동작을 작성하고 해당 타입의 요구사항을 지정합니다.제너릭 코드(Generic code)는 정의한 요구사항에 따라 모든 타입에서 동작할 수 있는 유연하고 재사용 가능한 함수와 타입을 작성할 수 있습니다. 중복을 피하고 명확하고 추상적인 방식으로 의도를
가장 큰 특징은 참조타입(call by reference)이다.참조 타입의 인스턴스를 만들면 Heap 영역에 할당이 된다. Heap 영역에 저장된 실제 정보는 스택 영역에 해당 힙 영역을 가르키는 참조(주소)가 저장이 되서 정보를 가져온다.클래스 인스턴스는 참조타입이기