스위프트는 안전을 우선으로 하는 프로그래밍 패턴을 지향하며, 옵셔널, 제네릭, 프로토콜, 튜플, 익스텐션 등 새로운 기능을 많이 도입함.현재 애플은 스위프트를 오픈소스로 공유하였음.ARC(Automatic Reference Counting, 자동 참조 횟수 계산)를 지
데이터 타입은 프로그램 내에서 다뤄지는 데이터의 종류를 의미.스위프트의 기본 데이터 타입은 구조체를 타입의 기반으로 삼아 스위프트의 다양한 기능(익스텐션, 제네릭 등)을 두루 사용하여 구현되어 있음.그중 가장 주목해야 할 점은 스위프트의 기본 데이터 타입이 모두 구조체
스위프트에서 값 타입의 데이터 교환은 엄밀히 말하면 타입캐스팅이 아닌 새로운 인스턴스를 생성하여 할당하는 것.스위프트는 컴파일 시 타입을 확인해하는데, 이것을 '타입 확인'이라 한다.스위프트에서는 변수나 상수를 선언할 때 특정 타입을 명시하지 않더라도 컴파일러가 할당된
구조체와 클래스는 프로그래머가 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용하다.구조체와 클래스는 프로퍼티와 메서드를 사용하여 구조화된 데이터와 기능을 가질 수 있다.하나의 새로운 사용자 정의 데이터 타입을 만들어 주는 것이다.둘의 가장 큰 차이점은 구조체의 인스턴
함수 정의시 넣은 작성한 인자는 parameter함수 실제 사용시 parameter에 넣은 인자는 argumentfirst와 second는 외부매개변수명, x와 y는 내부매개변수명이다.함수 내부에서 실제로 사용되는 매개변수는 '내부매개변수명'이다.함수에 외부매개변수명이
argment로 전달하는 값이 없는 경우, 디폴트 매개변수 값을 사용.함수를 선언할 때 매개변수에 디폴트 값을 할당이름이 인자로 전달되지 않을 경우에 디폴트로 "길동"이라는 문자열이 사용되도록 함.이름을 가지고 함수를 호출하면 argument를 사용이름을 전달하지 않고
스위프트 함수는 1급 객체이다.다음 조건을 충족하는 객체를 1급 객체라고 한다.변수에 저장할 수 있다.매개변수로 전달할 수 있다.리턴값으로 사용할 수 있다.스위프트는 함수를 데이터 타입처럼 처리할 수 있음.다음과 같이 함수를 상수 또는 변수에 할당하는 것이 가능.함수를
익명함수다.C, C++, Objective-C의 blockJava의 Lambda functionC클로저 표현식은 독립적인 코드 블록이다.클로저는 이름이 없다.클로저 표현식은 매개변수를 받거나, 값을 반환하도록 만들 수도 있다.두 개의 정수 매개변수를 받아서 곱한 값을
프로퍼티 : 클래스, 구조체 또는 열거형 등에 관련된 값을 뜻한다.메서드 : 특정 타입에 관련된 함수를 뜻한다.프로퍼티는 저장 프로퍼티(stored property), 연산 프로퍼티(Computed Property), 타입 프로퍼티(Type Property)로 나눌 수
옵셔널은 단어 뜻 그대로 '선택적인', 즉 값이 '있을 수도, 없을 수도 있음'을 나타내는 표현이다. 즉, 변수 또는 상수의 값이 'nil'일 수도 있다는 것을 의미한다. 옵셔널은 스위프트의 특징 중 하나인 안전성(safe)을 문법으로 담보하는 기능이다.옵셔널과 옵
정의옵셔널 체이닝은 옵셔널에 속해 있는 nil일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정이다.즉, 옵셔널을 반복 사용하여 옵셔널이 자전거 체인처럼 서로 꼬리를 물고 있는 모양이기 때문에 옵셔널 체이닝이라고 부른
초기화(initialization)는 클래스나 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정이다.이번 장에서는 인스턴스를 생성하는 방법과 클래스의 인스턴스가 소멸할 때 어떤 프로세스가 진행되는지 알아보자.초기화 과정은 새로운 인스턴스를 사용할 준비를 하기 위
접근제어란? 객체지향 프로그래밍 패러다임에서 은닉화를 구현하기 위한 핵심 기능이다. 접근제어란 코드끼리 상호작용시 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능이다. 접근제어를 통해 코드의 상세 구현은 숨기고 허용된 기능만 사용하는 인터페이스를 제공할 수 있다
프로토콜은 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의한다.어떤 프로토콜의 요구사항을 모두 따르는 타입은 '해당 프로토콜을 준수한다'고 표현한다.타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야
다른 클래스로부터 상속을 받지 않은 클래스를 기반클래스(Base Class)라고 한다.상속은 기반클래스를 다른 클래스에서 물려받는 것을 말한다.클래스는 메서드나 프로퍼티 등을 다른 클래스로부터 상속 가능하다.상속은 스위프트의 다른 타입과 클래스를 구별 짓는 클래스만의
참조 타입인 클래스의 이니셜라이저 위임은 지정 이니셜라이저와 편의 이니셜라이저로 역할을 구분한다.값 타입의 이니셜라이저는 상속을 고려할 필요가 없지만 클래스는 상속이 가능하므로 상속받았을 때 이니셜라이저를 어떻게 재정의하는지에 대한 규칙을 알아야 한다.지정 이니셜라이저