[Swift] 배열(Array)
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 Swift에서 자주 사용하는 데이터 구조 중 하나인 배열(Array)에 대해 알아보고 Swift 배열의 기본 개념, 생성, 조작 방법, 그리고 고급 기능들에 대해 간단하게 정리해보겠습니다.  그럼 바로 시작하겠습니다. Swift 배열이란?배열은 동일한 타입의 값들을 순서대로 저장하는 컬렉션 타입입니다. 배열은 인덱스를 통해 요소에 접근할 수 있으며, 요소의 순서는 배열에 추가된 순서대로 유지됩니다. Swift 배열은 값 타입(value type)으로, 복사 시 독립적으로 동작합니다. 배열의 생성배열을 생성하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 대괄호 []를 사용하는 것입니다.// 빈 배열 생성var emptyArray: [Int] = []..
[Swift] 초기화(Initializers) 알아보기 (3) - 2단계 초기화
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 지난번 포스팅들에 이어서 초기화(Initializers)에 대해서 알아볼 예정인데 이번에는 '2단계 초기화(two-phase initialization)' 라는 것에 대해 한 번 살펴보려고 합니다. 그럼 바로 시작하겠습니다! 2단계 초기화Swift의 클래스 초기화는 2단계 초기화(two-phase initialization)를 사용합니다. 먼저 1단계 초기화는 클래스에 정의한 각각의 저장 프로퍼티에 초깃값을 할당합니다. 이 단계에서는 모든 저장 프로퍼티에 초기값이 할당되어야 합니다. 그 이유는 모든 프로퍼티가 유효한 상태로 인스턴스가 생성될 수 있도록 보장하기 위해서 입니다.class Human { var name: String var age: ..
[Swift] 후행 클로저(trailing closure)
·
Apple/Swift
지난번 포스팅에서는 클로저에 대한 개념과 클로저 사용 방법에 대해서 자세히 살펴보았습니다. 이번 포스팅에서는 후행 클로저에 대해서 살펴보고 후행 클로저는 어떻게 쓰이는지 소스 코드와 함께 살펴보도록 하겠습니다. 후행 클로저(trailing closure) 우선 후행 클로저란 무엇이고 왜 사용하는 것일까요? Swift에서 후행 클로저(trailing closure)는 함수의 마지막 인자로 전달되는 클로저입니다. 일반적으로 함수 호출 시에 클로저를 사용할 때, 매개변수 목록 안에 인라인으로 작성하는 것이 일반적입니다. 하지만 후행 클로저를 사용하면 함수 호출 구문을 더 간결하고 가독성 있게 만들 수 있기 때문에 후행 클로저를 사용합니다. 일반적인 클로저와 후행 클로저의 차이점 Swift에서 클로저는 일급 객..
[Swift] 클로저(Closure)
·
Apple/Swift
클로저(Closure) Swift에서 클로저(Closure)는 독립적으로 실행 가능한 코드 블록입니다. 클로저는 함수와 비슷한 역할을 하며, 코드를 캡슐화하고 전달할 수 있습니다. 클로저는 일급 객체(First-class citizen)로 취급되어 변수나 상수에 할당하거나 함수의 인자로 전달하고 반환값으로 사용할 수 있습니다. 쉽게 말해서 클로저는 특정 작업(함수)과 그 작업이 일어난 곳(환경 or 상태)을 모두 기억하고 있는 도구라고 생각하시면 됩니다. 클로저는 아래와 같은 형태를 가지고 있습니다. 클로저 표현식 { (: , ... ) -> in // 클로저 표현식 코드(실행될 코드) } 여기서 매개변수, 반환타입, 그리고 실행될 코드 부분은 각각 생략 가능합니다. 클로저의 매개변수와 반환타입은 필요에..
[Swift] 1급 객체 (first class object), 1급 시민 (first class citizen)
·
Apple/Swift
1급 객체 (first class object) 또는 1급 시민 (first class citizen) Swift의 함수는 1급 객체 또는 1급 시민입니다. 아마 1급 객체 라는 용어에 대해서 낯서실 겁니다. 1급 객체에 대해서 먼저 알아보도록 하겠습니다. Swift에서 "1급 객체" 또는 "1급 시민" (first-class object/citizen)은 다음과 같은 특성을 가진 개체를 가리킵니다: 변수에 할당 가능 : 1급 객체는 변수에 할당할 수 있습니다. 즉, 함수나 값 등을 변수에 저장하고 전달할 수 있습니다. 함수의 매개변수로 전달 가능 : 1급 객체는 다른 함수의 매개변수로 전달될 수 있습니다. 즉, 함수를 다른 함수의 인자로 사용할 수 있습니다. 반환값으로 사용 가능 : 1급 객체는 다른 ..
[Swift] 가변 매개변수, call by address 구현
·
Apple/Swift
가변 매개변수(variadic parameter) Swift에서 가변 매개변수(variadic parameter)는 함수에 동적인 개수의 인자를 전달하기 위해 사용되는 특별한 매개변수입니다. 가변 매개변수를 사용하면 함수를 호출할 때 인자의 개수를 유연하게 조정할 수 있습니다. 가변 매개변수의 특징에 대해서 알아보도록 하겠습니다. 문법 : 가변 매개변수는 타입 뒤에 세 개의 점(...)을 사용하여 정의됩니다. 예를 들어, func sum(numbers: Int...)과 같이 선언할 수 있습니다. 타입 : 가변 매개변수는 배열로 처리됩니다. 따라서 함수 내부에서 해당 매개변수에 접근할 때 배열 형태로 다루어야 합니다. 호출 시 인자 전달 : 가변 매개변수를 사용하는 함수를 호출할 때, 여러 개의 인자 값을..