본문 바로가기

Swift/Swift Language

(15)
Swift 언어 가이드 - 클로져 표현식 클로져 Closures 클로져 (Closure)는 함축적(self-contained) 기능들의 블럭입니다. 스위프트에서 클로져는 C와 Objective-C의 클로져 또는 다른 프로그래밍 언어의 람다(lambdas)와도 유사합니다. 클로져는 문맥(context)로부터 상수나 변수에 대한 참조들을 가져와서(캡쳐링, capturing) 저장할 수 있습니다. 이것을 변수나 상수들을 클로징 오버(closing over) 한다고 말합니다. 스위프트는 여러분을 대신하여 캡쳐링에 필요한 메모리 관리를 직접 수행합니다. 참고 만약 여러분이 캡쳐링에 대한 개념에 익숙하지 않아도 괜찮습니다. 값 캡쳐링 (Capturing Values)에서 자세한 정보를 확인하세요. 전역 함수와 중첩된 함수는 모두 클로져의 특별한 종류입니다..
Swift 언어 가이드 - 함수 함수 _함수(function)_는 특정한 기능를 수행하기 위한 청크 단위의 코드이며 독립적인 코드입니다. 함수에 식별할 수 있는 이름을 부여할 수 있습니다. 함수의 이름은 함수가 기능을 수행할 때 함수를 "호출(call)"할 때 사용됩니다. 스위프트의 통합된 함수 문법은 유연합니다. 인자의 이름이 없는 간단한 C 형식의 함수를 표현하는 것 부터, 함수의 파라미터에 이름이 매겨진 복잡한 Objective-C 형식의 메서드까지도 표현할 수 있습니다. 파라미터는 기본 값을 가질 수 있습니다. 또한, 함수가 실행을 종료할 때 전달된 변수를 수정하는 _in-out 파라미터_로 인자를 전달할 수 있습니다. 스위프트의 모든 함수는 타입을 가집니다. 함수의 파라미터의 타입과 리턴 타입이 그것입니다. 여기서 사용되는 타..
Swift 언어 가이드 - 문자열과 문자 문자열과 문자 문자열 (string)은 여러 문자(characters)가 모인 것입니다. 예를 들어, "hello, world" 혹은, "albatross"와 같은 것이 문자열입니다. 스위프트의 문자열은 String 타입으로 표현합니다. String에 접근하는 방법은 여러가지가 있습니다. 주로 Character의 컬렉션 형태로 String에 접근합니다. 스위프트의 String과 Character 타입은 유니코드 형식을 따릅니다. 문자열 생성과 조작 문법은 가볍고 읽기 편합니다. 문자열을 연결(String concatenation)하는 방법은 매우 간단합니다. 두 개의 String을 + 연산자로 이어 붙입니다. 그리고 상수와 변수 중 하나를 선택하면 문자열이 변경될 수 있는지 불변으로 둘지를 결정할 수 있..
Swift 언어 가이드 - 흐름 제어 흐름제어 Control Flow 스위프트는 다양한 흐름 제어 문(statement)를 제공합니다. 이 중에는 작업을 여러번 수행할 수 있는 while 반복문이나, 조건에 따라 다른 코드의 흐름을 실행하기 위한 if, guard, swift문이 있습니다. 그리고 break, continue 처럼 문은 코드의 다른 곳으로 실행의 흐름을 이동하기 위한 것도 있습니다. 스위프트는 for-in 반복문을 지원합니다. 이 반복문은 배열, 딕셔너리, 범위, 문자열, 다른 시퀀스 등을 쉽게 순회할 수 있도록 합니다. 스위프트의 switch문은 C 언어의 switch문 보다 강력합니다. 스위프트의 switch느ㄴ 여러 조건들을 다른 패턴들과 일치할 수 있습니다. 예를 들어, 범위, 튜플, 특정 타입으로 캐스팅 등이 있습니..
Swift 언어 가이드 - 컬렉션 타입 컬렉션 타입 (Collection Types) 스위프트는 3가지의 주요한 컬렉션 타입을 제공합니다. 컬렉션 타입에는 배열(arrays), 집합(sets), 딕셔너리(dictionaries)있습니다. 컬렉션 타입은 값의 모음(collection)을 저장하기 위해 사용됩니다. 배열은 순서가 있는 값들의 모음입니다. 집합은 순서가 없고 중복이 없는 값들의 모음입니다. 딕셔너리는 순서가 없고 키-밸류(key-value) 조합의 모음입니다. 스위트의 배열, 집합, 딕셔너리는 저장하려는 값과 키의 타입을 항상 명확히 사용합니다. 즉, 여러분은 컬렉션에 잘못된 타입의 값을 추가할 수 없다는 것입니다. 다른 말로 해석하자면 여러분은 컬렉션으로부터 값을 가져올 때 그 값의 타입에 대해 확신을 가져도 좋다는 뜻입니다. 참..
Swift 언어 가이드 - 기초 연산자 기초 연산자 연산자는 값을 검사하고 변경하고 합치는 특별한 기호와 구(phrase)입니다. 예를 들어, 더하기 연산자 (+)는 let i = 1 + 2처럼 2개의 숫자를 더합니다. 그리고 논리 AND 연산자인 (&&)는 if enteredDoorCode && passedRetinaScan처럼 두 개의 불리언 값을 합칩니다. 스위프트는 대부분의 C 연산자를 제공하며 코딩 에러를 제거할 수 있도록 여러 기능들을 향상하였습니다. 대입 연산자 (=)는 값을 반환하지 않습니다. 숫자를 다룰 때 숫자가 허용된 수치보다 크거나 작은 값을 저장하는 실수를 범할 수 있습니다. 이것을 방지하고자, 산술 연산자 (+, -, *, /, %, 등)는 값을 점검하는 기능이 있습니다. 스위프트의 오버플로우 연산자를 사용하면 값의 ..
Swift 언어 가이드 - 기초 기초 스위프트는 iOS, macOS, watchOS 그리고 tvOS 앱 개발을 위한 새로운 프로그래밍 언어입니다. 스위프트의 많은 부분들이 C, Objective-C와 비슷합니다. 스위프트는 C와 Objective-C의 모든 근본적인 요소인 타입을 포함합니다. 예를 들어, 정수형을 표현하는Int , 부동 소수점 값을 표현하는 Double, 불리언 값을 위한 Bool, 그리고 텍스트 데이터를 표현하기 위한 String이 있습니다. 스위프트는 컬렉션 타입 에 서술된 것과 같이 배열, 집합, 그리고 딕셔너리라는 기본적인 세 가지 컬렉션 타입을 제공합니다. C언어와 유사하게, 스위프트는 값을 저장하고 참조하기 위해 변수를 사용합니다. 이 변수는 이름에 의해 식별이 됩니다. 스위프트는 또한 값이 변하지 않는 확장..