목록Swift/Swift 기초문법 (75)
HIT해

precondition란?Swift에서 특정 조건이 반드시 참이어야 하는 상황에서 사용하는 함수다.주로 디버깅과 안전한 코드 작성을 위해 사용되며, 프로그램이 예상하지 못한 상태로 진행되지 않도록 한다.precondition은 런타임에 조건을 확인하고, 조건이 거짓일 경우 프로그램을 종료시키며, 주로 논리적 오류를 확인하는 데 사용된다. precondition의 기본 개념func precondition(_ condition: @autoclosure () -> Bool,_ message: @autoclosure () -> String = "",file: StaticString = #file, line: UInt = #line)condition : Bool 값을 반환하는 조건식, 이 조건이 false 일 ..

backtick이란?` Swift에서 백틱을 활용하면 변수 이름으로 지정 못하는 것들을 이름으로 지정할 수 있다. 사용 예시var var = "흰둥이" // 오류var `var` = "흰둥이"

CustomStringConvertible이란?Swift 표준 라이브러리에서 제공하는 프로토콜로, 객체를 사용자 정의 문자열로 표현할 수 있게 해준다.이 프로토콜을 채택한 타입은 description이라는 문자열 속성을 구현하여 해당 객체의 맞춤형 설명을 제공한다. CustomStringConvertible의 기본 개념CustomStringConvertible은 하나의 요구사항만 가지고 이싿.description이라는 읽기 전용 속성을 구현하는 것이다. 이 속성은 객체를 설명하는 문자열을 반환합니다.protocol CustomStringConvertible { var description: String { get }} CustomStringConvertible 사용 예제struct Person:..

KeyPath란?특정 타입의 속성에 대한 경로르 나타내는 참조다.KeyPath를 사용하면 객체의 특정 속성에 접근하거나, 그 속성을 읽고 쓸 수 있다. 이 기능은 특히 KVO와 같은 기능에 유용하다. KeyPath의 기본 개념KeyPath는 간단히 말해 객체의 속성에 대한 경로를 나타낸다. KeyPath 사용 예제struct Person { var name: String var age: Int}let person = Person(name: "Alice", age: 30)// KeyPath 생성let nameKeyPath = \Person.namelet ageKeyPath = \Person.age// KeyPath를 사용하여 값 읽기let personName = person[keyPath: na..

팩토리 메서드 패턴이란?팩토리 메서드 패턴은 객체 생성 로직을 캡슐화하여 객체의 생성과 관련된 책임을 다른 객체로 위임하는 디자인 패턴이다.Swfit에서는 클래스나 구조체의 정적 메서드 (static method)를 사용하여 팩토리 메서드를 구현할 수 있다.이를 통해 객체 생성 과정을 숨기고, 객체 생성 로직을 중앙 집중화할 수 있다. 팩토리 메서드 기본 개념팩토리 메서드는 객체를 생성하는 역할을 담당하는 메서드로, 클래스나 구조체의 인스턴스를 생성하는 복잡한 로직을 메서드 내에서 처리한다. 이를 통해 객체 생성의 유연성과 재사용성을 높일 수 있다. 팩토리 메서드 구현 예제class Vehicle { let type: String let numberOfWheels: Int // 기..
.some과 .none이란?Optional 타입의 두 가지 가능한 상태를 나타내는 값이다. Optional 타입에만 사용되며 값이 존재할 수도 있고 존재하지 않을 수도 있는 상황을 다루기 위해 사용된다. Optional 타입some : 값이 존재하는 경우none : 값이 존재하지 않는 경우 일반적인 사용보통 언래핑을 할때 some과 none 을 사용하기보단 if let 또는 guard let 을 사용한다.func greet(name: String?) { if let unwrappedName = name { print("Hello, \(unwrappedName)!") } else { print("Hello, stranger!") }}greet(name: "Alic..
allSatisfy란?Swift의 컬렉션 타입에서 제공하는 메서드로, 컬렉션의 모든 요소가 주어진 조건을 만족하는지 검사하는 데 사용된다.이 메서드는 Sequence 프로토콜에 정의되어 있으며, 배열, 집합, 문자열 등의 컬렉션 타입에서 사용할 수 있다. 기본 사용법let numbers = [2, 4, 6, 8, 10]let allEven = numbers.allSatisfy { $0 % 2 == 0 }print(allEven) // 출력: true 위 코드에서 numvers 배열의 모든 요소가 짝수인지 확인한다.배열의 모든 요소가 짝수이므로 true가 출력된다. 문자열에서의 사용let string = "hello"let allLowercase = string.allSatisfy { $0.isLower..

defer란?Swift에서 defer문은 특정 코드 블록이 종료될 때 실행되도록 보장하는 데 사용된다.이는 주로 리소스를 정리하거나 상태를 복구하는 등의 작업을 처리하는 데 유용하다.defer 블록은 해당 스코프의 마지막에 실행되며 함수 또는 메서드가 종료될 때 호출된다. defer 기본 개념defer는 코드의 특정 부분이 실행되기 전에 defer 블록 안의 코드가 실행되도록 보장한다.이를 통해 함수가 정상적으로 종료되거나 오류가 발생하여 조기 종료될 때도 defer 블록의 코드가 실행된다. 기본 사용법func exampleFunction() { print("Start") defer { print("This will be printed last") } pr..